@37signals/basecamp 0.7.3 → 0.8.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.
- package/README.md +80 -1
- package/dist/client.d.ts +4 -4
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +30 -23
- package/dist/client.js.map +1 -1
- package/dist/download.d.ts.map +1 -1
- package/dist/errors.d.ts +10 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +7 -1
- package/dist/errors.js.map +1 -1
- package/dist/generated/metadata.d.ts +32 -0
- package/dist/generated/metadata.d.ts.map +1 -0
- package/dist/generated/metadata.js +2670 -0
- package/dist/generated/metadata.js.map +1 -0
- package/dist/generated/{metadata.json → metadata.ts} +98 -45
- package/dist/generated/openapi-stripped.json +713 -440
- package/dist/generated/path-mapping.d.ts.map +1 -1
- package/dist/generated/path-mapping.js +6 -5
- package/dist/generated/path-mapping.js.map +1 -1
- package/dist/generated/path-mapping.ts +6 -5
- package/dist/generated/schema.d.ts +510 -297
- package/dist/generated/services/campfires.d.ts +22 -1
- package/dist/generated/services/campfires.d.ts.map +1 -1
- package/dist/generated/services/campfires.js +33 -1
- package/dist/generated/services/campfires.js.map +1 -1
- package/dist/generated/services/campfires.ts +46 -1
- package/dist/generated/services/card-columns.d.ts +31 -28
- package/dist/generated/services/card-columns.d.ts.map +1 -1
- package/dist/generated/services/card-columns.js +54 -51
- package/dist/generated/services/card-columns.js.map +1 -1
- package/dist/generated/services/card-columns.ts +62 -59
- package/dist/generated/services/index.d.ts +2 -2
- package/dist/generated/services/index.d.ts.map +1 -1
- package/dist/generated/services/index.js +2 -2
- package/dist/generated/services/index.js.map +1 -1
- package/dist/generated/services/index.ts +2 -2
- package/dist/generated/services/reports.d.ts +1 -1
- package/dist/generated/services/reports.js +1 -1
- package/dist/generated/services/reports.ts +1 -1
- package/dist/generated/services/todos.d.ts +8 -8
- package/dist/generated/services/todos.d.ts.map +1 -1
- package/dist/generated/services/todos.js +9 -6
- package/dist/generated/services/todos.js.map +1 -1
- package/dist/generated/services/todos.ts +12 -9
- package/dist/generated/services/tools.d.ts +11 -10
- package/dist/generated/services/tools.d.ts.map +1 -1
- package/dist/generated/services/tools.js +16 -8
- package/dist/generated/services/tools.js.map +1 -1
- package/dist/generated/services/tools.ts +21 -13
- package/dist/index.d.ts +6 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/oauth/discovery.d.ts +105 -23
- package/dist/oauth/discovery.d.ts.map +1 -1
- package/dist/oauth/discovery.js +453 -61
- package/dist/oauth/discovery.js.map +1 -1
- package/dist/oauth/index.d.ts +2 -2
- package/dist/oauth/index.d.ts.map +1 -1
- package/dist/oauth/index.js +1 -1
- package/dist/oauth/index.js.map +1 -1
- package/dist/oauth/interactive-login.d.ts +20 -2
- package/dist/oauth/interactive-login.d.ts.map +1 -1
- package/dist/oauth/interactive-login.js +58 -4
- package/dist/oauth/interactive-login.js.map +1 -1
- package/dist/oauth/types.d.ts +54 -2
- package/dist/oauth/types.d.ts.map +1 -1
- package/dist/security.d.ts +22 -0
- package/dist/security.d.ts.map +1 -1
- package/dist/security.js +56 -1
- package/dist/security.js.map +1 -1
- package/dist/services/authorization.d.ts.map +1 -1
- package/dist/services/authorization.js +3 -0
- package/dist/services/authorization.js.map +1 -1
- package/dist/services/base.d.ts.map +1 -1
- package/dist/services/base.js +1 -3
- package/dist/services/base.js.map +1 -1
- package/dist/services/todos-extensions.d.ts +118 -0
- package/dist/services/todos-extensions.d.ts.map +1 -0
- package/dist/services/todos-extensions.js +113 -0
- package/dist/services/todos-extensions.js.map +1 -0
- package/dist/services/uploads-extensions.d.ts +33 -0
- package/dist/services/uploads-extensions.d.ts.map +1 -0
- package/dist/services/uploads-extensions.js +48 -0
- package/dist/services/uploads-extensions.js.map +1 -0
- package/package.json +7 -4
- package/src/generated/{metadata.json → metadata.ts} +98 -45
- package/src/generated/openapi-stripped.json +713 -440
- package/src/generated/path-mapping.ts +6 -5
- package/src/generated/schema.d.ts +510 -297
- package/src/generated/services/campfires.ts +46 -1
- package/src/generated/services/card-columns.ts +62 -59
- package/src/generated/services/index.ts +2 -2
- package/src/generated/services/reports.ts +1 -1
- package/src/generated/services/todos.ts +12 -9
- package/src/generated/services/tools.ts +21 -13
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"openapi": "3.1.0",
|
|
3
3
|
"info": {
|
|
4
4
|
"title": "Basecamp",
|
|
5
|
-
"version": "2026-
|
|
5
|
+
"version": "2026-07-22",
|
|
6
6
|
"description": "Basecamp API",
|
|
7
7
|
"contact": {
|
|
8
8
|
"name": "Basecamp",
|
|
@@ -589,10 +589,20 @@
|
|
|
589
589
|
}
|
|
590
590
|
}
|
|
591
591
|
},
|
|
592
|
-
"/buckets/{bucketId}/
|
|
593
|
-
"
|
|
594
|
-
"description": "
|
|
595
|
-
"operationId": "
|
|
592
|
+
"/buckets/{bucketId}/card_tables/columns/{columnId}/color.json": {
|
|
593
|
+
"put": {
|
|
594
|
+
"description": "Set the color of a column",
|
|
595
|
+
"operationId": "SetCardColumnColor",
|
|
596
|
+
"requestBody": {
|
|
597
|
+
"content": {
|
|
598
|
+
"application/json": {
|
|
599
|
+
"schema": {
|
|
600
|
+
"$ref": "#/components/schemas/SetCardColumnColorRequestContent"
|
|
601
|
+
}
|
|
602
|
+
}
|
|
603
|
+
},
|
|
604
|
+
"required": true
|
|
605
|
+
},
|
|
596
606
|
"parameters": [
|
|
597
607
|
{
|
|
598
608
|
"name": "bucketId",
|
|
@@ -602,15 +612,24 @@
|
|
|
602
612
|
"format": "int64"
|
|
603
613
|
},
|
|
604
614
|
"required": true
|
|
615
|
+
},
|
|
616
|
+
{
|
|
617
|
+
"name": "columnId",
|
|
618
|
+
"in": "path",
|
|
619
|
+
"schema": {
|
|
620
|
+
"type": "integer",
|
|
621
|
+
"format": "int64"
|
|
622
|
+
},
|
|
623
|
+
"required": true
|
|
605
624
|
}
|
|
606
625
|
],
|
|
607
626
|
"responses": {
|
|
608
627
|
"200": {
|
|
609
|
-
"description": "
|
|
628
|
+
"description": "SetCardColumnColor 200 response",
|
|
610
629
|
"content": {
|
|
611
630
|
"application/json": {
|
|
612
631
|
"schema": {
|
|
613
|
-
"$ref": "#/components/schemas/
|
|
632
|
+
"$ref": "#/components/schemas/SetCardColumnColorResponseContent"
|
|
614
633
|
}
|
|
615
634
|
}
|
|
616
635
|
}
|
|
@@ -635,6 +654,26 @@
|
|
|
635
654
|
}
|
|
636
655
|
}
|
|
637
656
|
},
|
|
657
|
+
"404": {
|
|
658
|
+
"description": "NotFoundError 404 response",
|
|
659
|
+
"content": {
|
|
660
|
+
"application/json": {
|
|
661
|
+
"schema": {
|
|
662
|
+
"$ref": "#/components/schemas/NotFoundErrorResponseContent"
|
|
663
|
+
}
|
|
664
|
+
}
|
|
665
|
+
}
|
|
666
|
+
},
|
|
667
|
+
"422": {
|
|
668
|
+
"description": "ValidationError 422 response",
|
|
669
|
+
"content": {
|
|
670
|
+
"application/json": {
|
|
671
|
+
"schema": {
|
|
672
|
+
"$ref": "#/components/schemas/ValidationErrorResponseContent"
|
|
673
|
+
}
|
|
674
|
+
}
|
|
675
|
+
}
|
|
676
|
+
},
|
|
638
677
|
"429": {
|
|
639
678
|
"description": "RateLimitError 429 response",
|
|
640
679
|
"content": {
|
|
@@ -657,12 +696,10 @@
|
|
|
657
696
|
}
|
|
658
697
|
},
|
|
659
698
|
"tags": [
|
|
660
|
-
"
|
|
699
|
+
"Card Tables"
|
|
661
700
|
],
|
|
662
|
-
"x-basecamp-
|
|
663
|
-
"
|
|
664
|
-
"totalCountHeader": "X-Total-Count",
|
|
665
|
-
"maxPageSize": 50
|
|
701
|
+
"x-basecamp-idempotent": {
|
|
702
|
+
"natural": true
|
|
666
703
|
},
|
|
667
704
|
"x-basecamp-retry": {
|
|
668
705
|
"maxAttempts": 3,
|
|
@@ -673,20 +710,12 @@
|
|
|
673
710
|
503
|
|
674
711
|
]
|
|
675
712
|
}
|
|
676
|
-
}
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
"
|
|
681
|
-
|
|
682
|
-
"application/json": {
|
|
683
|
-
"schema": {
|
|
684
|
-
"$ref": "#/components/schemas/CreateWebhookRequestContent"
|
|
685
|
-
}
|
|
686
|
-
}
|
|
687
|
-
},
|
|
688
|
-
"required": true
|
|
689
|
-
},
|
|
713
|
+
}
|
|
714
|
+
},
|
|
715
|
+
"/buckets/{bucketId}/card_tables/columns/{columnId}/on_hold.json": {
|
|
716
|
+
"delete": {
|
|
717
|
+
"description": "Disable on-hold section in a column",
|
|
718
|
+
"operationId": "DisableCardColumnOnHold",
|
|
690
719
|
"parameters": [
|
|
691
720
|
{
|
|
692
721
|
"name": "bucketId",
|
|
@@ -696,25 +725,24 @@
|
|
|
696
725
|
"format": "int64"
|
|
697
726
|
},
|
|
698
727
|
"required": true
|
|
728
|
+
},
|
|
729
|
+
{
|
|
730
|
+
"name": "columnId",
|
|
731
|
+
"in": "path",
|
|
732
|
+
"schema": {
|
|
733
|
+
"type": "integer",
|
|
734
|
+
"format": "int64"
|
|
735
|
+
},
|
|
736
|
+
"required": true
|
|
699
737
|
}
|
|
700
738
|
],
|
|
701
739
|
"responses": {
|
|
702
|
-
"
|
|
703
|
-
"description": "
|
|
704
|
-
"content": {
|
|
705
|
-
"application/json": {
|
|
706
|
-
"schema": {
|
|
707
|
-
"$ref": "#/components/schemas/CreateWebhookResponseContent"
|
|
708
|
-
}
|
|
709
|
-
}
|
|
710
|
-
}
|
|
711
|
-
},
|
|
712
|
-
"400": {
|
|
713
|
-
"description": "BadRequestError 400 response",
|
|
740
|
+
"200": {
|
|
741
|
+
"description": "DisableCardColumnOnHold 200 response",
|
|
714
742
|
"content": {
|
|
715
743
|
"application/json": {
|
|
716
744
|
"schema": {
|
|
717
|
-
"$ref": "#/components/schemas/
|
|
745
|
+
"$ref": "#/components/schemas/DisableCardColumnOnHoldResponseContent"
|
|
718
746
|
}
|
|
719
747
|
}
|
|
720
748
|
}
|
|
@@ -739,42 +767,45 @@
|
|
|
739
767
|
}
|
|
740
768
|
}
|
|
741
769
|
},
|
|
742
|
-
"
|
|
743
|
-
"description": "
|
|
770
|
+
"404": {
|
|
771
|
+
"description": "NotFoundError 404 response",
|
|
744
772
|
"content": {
|
|
745
773
|
"application/json": {
|
|
746
774
|
"schema": {
|
|
747
|
-
"$ref": "#/components/schemas/
|
|
775
|
+
"$ref": "#/components/schemas/NotFoundErrorResponseContent"
|
|
748
776
|
}
|
|
749
777
|
}
|
|
750
778
|
}
|
|
751
779
|
},
|
|
752
|
-
"
|
|
753
|
-
"description": "
|
|
780
|
+
"429": {
|
|
781
|
+
"description": "RateLimitError 429 response",
|
|
754
782
|
"content": {
|
|
755
783
|
"application/json": {
|
|
756
784
|
"schema": {
|
|
757
|
-
"$ref": "#/components/schemas/
|
|
785
|
+
"$ref": "#/components/schemas/RateLimitErrorResponseContent"
|
|
758
786
|
}
|
|
759
787
|
}
|
|
760
788
|
}
|
|
761
789
|
},
|
|
762
|
-
"
|
|
763
|
-
"description": "
|
|
790
|
+
"500": {
|
|
791
|
+
"description": "InternalServerError 500 response",
|
|
764
792
|
"content": {
|
|
765
793
|
"application/json": {
|
|
766
794
|
"schema": {
|
|
767
|
-
"$ref": "#/components/schemas/
|
|
795
|
+
"$ref": "#/components/schemas/InternalServerErrorResponseContent"
|
|
768
796
|
}
|
|
769
797
|
}
|
|
770
798
|
}
|
|
771
799
|
}
|
|
772
800
|
},
|
|
773
801
|
"tags": [
|
|
774
|
-
"
|
|
802
|
+
"Card Tables"
|
|
775
803
|
],
|
|
804
|
+
"x-basecamp-idempotent": {
|
|
805
|
+
"natural": true
|
|
806
|
+
},
|
|
776
807
|
"x-basecamp-retry": {
|
|
777
|
-
"maxAttempts":
|
|
808
|
+
"maxAttempts": 3,
|
|
778
809
|
"baseDelayMs": 1000,
|
|
779
810
|
"backoff": "exponential",
|
|
780
811
|
"retryOn": [
|
|
@@ -782,15 +813,22 @@
|
|
|
782
813
|
503
|
|
783
814
|
]
|
|
784
815
|
}
|
|
785
|
-
}
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
"description": "Get a card by ID",
|
|
790
|
-
"operationId": "GetCard",
|
|
816
|
+
},
|
|
817
|
+
"post": {
|
|
818
|
+
"description": "Enable on-hold section in a column",
|
|
819
|
+
"operationId": "EnableCardColumnOnHold",
|
|
791
820
|
"parameters": [
|
|
792
821
|
{
|
|
793
|
-
"name": "
|
|
822
|
+
"name": "bucketId",
|
|
823
|
+
"in": "path",
|
|
824
|
+
"schema": {
|
|
825
|
+
"type": "integer",
|
|
826
|
+
"format": "int64"
|
|
827
|
+
},
|
|
828
|
+
"required": true
|
|
829
|
+
},
|
|
830
|
+
{
|
|
831
|
+
"name": "columnId",
|
|
794
832
|
"in": "path",
|
|
795
833
|
"schema": {
|
|
796
834
|
"type": "integer",
|
|
@@ -801,11 +839,11 @@
|
|
|
801
839
|
],
|
|
802
840
|
"responses": {
|
|
803
841
|
"200": {
|
|
804
|
-
"description": "
|
|
842
|
+
"description": "EnableCardColumnOnHold 200 response",
|
|
805
843
|
"content": {
|
|
806
844
|
"application/json": {
|
|
807
845
|
"schema": {
|
|
808
|
-
"$ref": "#/components/schemas/
|
|
846
|
+
"$ref": "#/components/schemas/EnableCardColumnOnHoldResponseContent"
|
|
809
847
|
}
|
|
810
848
|
}
|
|
811
849
|
}
|
|
@@ -830,12 +868,22 @@
|
|
|
830
868
|
}
|
|
831
869
|
}
|
|
832
870
|
},
|
|
833
|
-
"
|
|
834
|
-
"description": "
|
|
871
|
+
"422": {
|
|
872
|
+
"description": "ValidationError 422 response",
|
|
835
873
|
"content": {
|
|
836
874
|
"application/json": {
|
|
837
875
|
"schema": {
|
|
838
|
-
"$ref": "#/components/schemas/
|
|
876
|
+
"$ref": "#/components/schemas/ValidationErrorResponseContent"
|
|
877
|
+
}
|
|
878
|
+
}
|
|
879
|
+
}
|
|
880
|
+
},
|
|
881
|
+
"429": {
|
|
882
|
+
"description": "RateLimitError 429 response",
|
|
883
|
+
"content": {
|
|
884
|
+
"application/json": {
|
|
885
|
+
"schema": {
|
|
886
|
+
"$ref": "#/components/schemas/RateLimitErrorResponseContent"
|
|
839
887
|
}
|
|
840
888
|
}
|
|
841
889
|
}
|
|
@@ -855,7 +903,7 @@
|
|
|
855
903
|
"Card Tables"
|
|
856
904
|
],
|
|
857
905
|
"x-basecamp-retry": {
|
|
858
|
-
"maxAttempts":
|
|
906
|
+
"maxAttempts": 2,
|
|
859
907
|
"baseDelayMs": 1000,
|
|
860
908
|
"backoff": "exponential",
|
|
861
909
|
"retryOn": [
|
|
@@ -863,22 +911,25 @@
|
|
|
863
911
|
503
|
|
864
912
|
]
|
|
865
913
|
}
|
|
866
|
-
}
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
914
|
+
}
|
|
915
|
+
},
|
|
916
|
+
"/buckets/{bucketId}/dock/tools.json": {
|
|
917
|
+
"post": {
|
|
918
|
+
"description": "Create a tool in a project dock",
|
|
919
|
+
"operationId": "CreateTool",
|
|
870
920
|
"requestBody": {
|
|
871
921
|
"content": {
|
|
872
922
|
"application/json": {
|
|
873
923
|
"schema": {
|
|
874
|
-
"$ref": "#/components/schemas/
|
|
924
|
+
"$ref": "#/components/schemas/CreateToolRequestContent"
|
|
875
925
|
}
|
|
876
926
|
}
|
|
877
|
-
}
|
|
927
|
+
},
|
|
928
|
+
"required": true
|
|
878
929
|
},
|
|
879
930
|
"parameters": [
|
|
880
931
|
{
|
|
881
|
-
"name": "
|
|
932
|
+
"name": "bucketId",
|
|
882
933
|
"in": "path",
|
|
883
934
|
"schema": {
|
|
884
935
|
"type": "integer",
|
|
@@ -888,12 +939,12 @@
|
|
|
888
939
|
}
|
|
889
940
|
],
|
|
890
941
|
"responses": {
|
|
891
|
-
"
|
|
892
|
-
"description": "
|
|
942
|
+
"201": {
|
|
943
|
+
"description": "CreateTool 201 response",
|
|
893
944
|
"content": {
|
|
894
945
|
"application/json": {
|
|
895
946
|
"schema": {
|
|
896
|
-
"$ref": "#/components/schemas/
|
|
947
|
+
"$ref": "#/components/schemas/CreateToolResponseContent"
|
|
897
948
|
}
|
|
898
949
|
}
|
|
899
950
|
}
|
|
@@ -918,22 +969,22 @@
|
|
|
918
969
|
}
|
|
919
970
|
}
|
|
920
971
|
},
|
|
921
|
-
"
|
|
922
|
-
"description": "
|
|
972
|
+
"422": {
|
|
973
|
+
"description": "ValidationError 422 response",
|
|
923
974
|
"content": {
|
|
924
975
|
"application/json": {
|
|
925
976
|
"schema": {
|
|
926
|
-
"$ref": "#/components/schemas/
|
|
977
|
+
"$ref": "#/components/schemas/ValidationErrorResponseContent"
|
|
927
978
|
}
|
|
928
979
|
}
|
|
929
980
|
}
|
|
930
981
|
},
|
|
931
|
-
"
|
|
932
|
-
"description": "
|
|
982
|
+
"429": {
|
|
983
|
+
"description": "RateLimitError 429 response",
|
|
933
984
|
"content": {
|
|
934
985
|
"application/json": {
|
|
935
986
|
"schema": {
|
|
936
|
-
"$ref": "#/components/schemas/
|
|
987
|
+
"$ref": "#/components/schemas/RateLimitErrorResponseContent"
|
|
937
988
|
}
|
|
938
989
|
}
|
|
939
990
|
}
|
|
@@ -950,13 +1001,10 @@
|
|
|
950
1001
|
}
|
|
951
1002
|
},
|
|
952
1003
|
"tags": [
|
|
953
|
-
"
|
|
1004
|
+
"Automation"
|
|
954
1005
|
],
|
|
955
|
-
"x-basecamp-idempotent": {
|
|
956
|
-
"natural": true
|
|
957
|
-
},
|
|
958
1006
|
"x-basecamp-retry": {
|
|
959
|
-
"maxAttempts":
|
|
1007
|
+
"maxAttempts": 2,
|
|
960
1008
|
"baseDelayMs": 1000,
|
|
961
1009
|
"backoff": "exponential",
|
|
962
1010
|
"retryOn": [
|
|
@@ -966,15 +1014,99 @@
|
|
|
966
1014
|
}
|
|
967
1015
|
}
|
|
968
1016
|
},
|
|
969
|
-
"/
|
|
1017
|
+
"/buckets/{bucketId}/webhooks.json": {
|
|
1018
|
+
"get": {
|
|
1019
|
+
"description": "List all webhooks for a project\n\n**Pagination**: Uses Link header (RFC5988). Follow the `next` rel URL\nto fetch additional pages. X-Total-Count header provides total count.",
|
|
1020
|
+
"operationId": "ListWebhooks",
|
|
1021
|
+
"parameters": [
|
|
1022
|
+
{
|
|
1023
|
+
"name": "bucketId",
|
|
1024
|
+
"in": "path",
|
|
1025
|
+
"schema": {
|
|
1026
|
+
"type": "integer",
|
|
1027
|
+
"format": "int64"
|
|
1028
|
+
},
|
|
1029
|
+
"required": true
|
|
1030
|
+
}
|
|
1031
|
+
],
|
|
1032
|
+
"responses": {
|
|
1033
|
+
"200": {
|
|
1034
|
+
"description": "ListWebhooks 200 response",
|
|
1035
|
+
"content": {
|
|
1036
|
+
"application/json": {
|
|
1037
|
+
"schema": {
|
|
1038
|
+
"$ref": "#/components/schemas/ListWebhooksResponseContent"
|
|
1039
|
+
}
|
|
1040
|
+
}
|
|
1041
|
+
}
|
|
1042
|
+
},
|
|
1043
|
+
"401": {
|
|
1044
|
+
"description": "UnauthorizedError 401 response",
|
|
1045
|
+
"content": {
|
|
1046
|
+
"application/json": {
|
|
1047
|
+
"schema": {
|
|
1048
|
+
"$ref": "#/components/schemas/UnauthorizedErrorResponseContent"
|
|
1049
|
+
}
|
|
1050
|
+
}
|
|
1051
|
+
}
|
|
1052
|
+
},
|
|
1053
|
+
"403": {
|
|
1054
|
+
"description": "ForbiddenError 403 response",
|
|
1055
|
+
"content": {
|
|
1056
|
+
"application/json": {
|
|
1057
|
+
"schema": {
|
|
1058
|
+
"$ref": "#/components/schemas/ForbiddenErrorResponseContent"
|
|
1059
|
+
}
|
|
1060
|
+
}
|
|
1061
|
+
}
|
|
1062
|
+
},
|
|
1063
|
+
"429": {
|
|
1064
|
+
"description": "RateLimitError 429 response",
|
|
1065
|
+
"content": {
|
|
1066
|
+
"application/json": {
|
|
1067
|
+
"schema": {
|
|
1068
|
+
"$ref": "#/components/schemas/RateLimitErrorResponseContent"
|
|
1069
|
+
}
|
|
1070
|
+
}
|
|
1071
|
+
}
|
|
1072
|
+
},
|
|
1073
|
+
"500": {
|
|
1074
|
+
"description": "InternalServerError 500 response",
|
|
1075
|
+
"content": {
|
|
1076
|
+
"application/json": {
|
|
1077
|
+
"schema": {
|
|
1078
|
+
"$ref": "#/components/schemas/InternalServerErrorResponseContent"
|
|
1079
|
+
}
|
|
1080
|
+
}
|
|
1081
|
+
}
|
|
1082
|
+
}
|
|
1083
|
+
},
|
|
1084
|
+
"tags": [
|
|
1085
|
+
"Automation"
|
|
1086
|
+
],
|
|
1087
|
+
"x-basecamp-pagination": {
|
|
1088
|
+
"style": "link",
|
|
1089
|
+
"totalCountHeader": "X-Total-Count",
|
|
1090
|
+
"maxPageSize": 50
|
|
1091
|
+
},
|
|
1092
|
+
"x-basecamp-retry": {
|
|
1093
|
+
"maxAttempts": 3,
|
|
1094
|
+
"baseDelayMs": 1000,
|
|
1095
|
+
"backoff": "exponential",
|
|
1096
|
+
"retryOn": [
|
|
1097
|
+
429,
|
|
1098
|
+
503
|
|
1099
|
+
]
|
|
1100
|
+
}
|
|
1101
|
+
},
|
|
970
1102
|
"post": {
|
|
971
|
-
"description": "
|
|
972
|
-
"operationId": "
|
|
1103
|
+
"description": "Create a new webhook for a project",
|
|
1104
|
+
"operationId": "CreateWebhook",
|
|
973
1105
|
"requestBody": {
|
|
974
1106
|
"content": {
|
|
975
1107
|
"application/json": {
|
|
976
1108
|
"schema": {
|
|
977
|
-
"$ref": "#/components/schemas/
|
|
1109
|
+
"$ref": "#/components/schemas/CreateWebhookRequestContent"
|
|
978
1110
|
}
|
|
979
1111
|
}
|
|
980
1112
|
},
|
|
@@ -982,7 +1114,7 @@
|
|
|
982
1114
|
},
|
|
983
1115
|
"parameters": [
|
|
984
1116
|
{
|
|
985
|
-
"name": "
|
|
1117
|
+
"name": "bucketId",
|
|
986
1118
|
"in": "path",
|
|
987
1119
|
"schema": {
|
|
988
1120
|
"type": "integer",
|
|
@@ -992,35 +1124,42 @@
|
|
|
992
1124
|
}
|
|
993
1125
|
],
|
|
994
1126
|
"responses": {
|
|
995
|
-
"
|
|
996
|
-
"description": "
|
|
1127
|
+
"201": {
|
|
1128
|
+
"description": "CreateWebhook 201 response",
|
|
1129
|
+
"content": {
|
|
1130
|
+
"application/json": {
|
|
1131
|
+
"schema": {
|
|
1132
|
+
"$ref": "#/components/schemas/CreateWebhookResponseContent"
|
|
1133
|
+
}
|
|
1134
|
+
}
|
|
1135
|
+
}
|
|
997
1136
|
},
|
|
998
|
-
"
|
|
999
|
-
"description": "
|
|
1137
|
+
"400": {
|
|
1138
|
+
"description": "BadRequestError 400 response",
|
|
1000
1139
|
"content": {
|
|
1001
1140
|
"application/json": {
|
|
1002
1141
|
"schema": {
|
|
1003
|
-
"$ref": "#/components/schemas/
|
|
1142
|
+
"$ref": "#/components/schemas/BadRequestErrorResponseContent"
|
|
1004
1143
|
}
|
|
1005
1144
|
}
|
|
1006
1145
|
}
|
|
1007
1146
|
},
|
|
1008
|
-
"
|
|
1009
|
-
"description": "
|
|
1147
|
+
"401": {
|
|
1148
|
+
"description": "UnauthorizedError 401 response",
|
|
1010
1149
|
"content": {
|
|
1011
1150
|
"application/json": {
|
|
1012
1151
|
"schema": {
|
|
1013
|
-
"$ref": "#/components/schemas/
|
|
1152
|
+
"$ref": "#/components/schemas/UnauthorizedErrorResponseContent"
|
|
1014
1153
|
}
|
|
1015
1154
|
}
|
|
1016
1155
|
}
|
|
1017
1156
|
},
|
|
1018
|
-
"
|
|
1019
|
-
"description": "
|
|
1157
|
+
"403": {
|
|
1158
|
+
"description": "ForbiddenError 403 response",
|
|
1020
1159
|
"content": {
|
|
1021
1160
|
"application/json": {
|
|
1022
1161
|
"schema": {
|
|
1023
|
-
"$ref": "#/components/schemas/
|
|
1162
|
+
"$ref": "#/components/schemas/ForbiddenErrorResponseContent"
|
|
1024
1163
|
}
|
|
1025
1164
|
}
|
|
1026
1165
|
}
|
|
@@ -1044,10 +1183,20 @@
|
|
|
1044
1183
|
}
|
|
1045
1184
|
}
|
|
1046
1185
|
}
|
|
1186
|
+
},
|
|
1187
|
+
"507": {
|
|
1188
|
+
"description": "WebhookLimitError 507 response",
|
|
1189
|
+
"content": {
|
|
1190
|
+
"application/json": {
|
|
1191
|
+
"schema": {
|
|
1192
|
+
"$ref": "#/components/schemas/WebhookLimitErrorResponseContent"
|
|
1193
|
+
}
|
|
1194
|
+
}
|
|
1195
|
+
}
|
|
1047
1196
|
}
|
|
1048
1197
|
},
|
|
1049
1198
|
"tags": [
|
|
1050
|
-
"
|
|
1199
|
+
"Automation"
|
|
1051
1200
|
],
|
|
1052
1201
|
"x-basecamp-retry": {
|
|
1053
1202
|
"maxAttempts": 2,
|
|
@@ -1060,20 +1209,10 @@
|
|
|
1060
1209
|
}
|
|
1061
1210
|
}
|
|
1062
1211
|
},
|
|
1063
|
-
"/card_tables/cards/{cardId}
|
|
1064
|
-
"
|
|
1065
|
-
"description": "
|
|
1066
|
-
"operationId": "
|
|
1067
|
-
"requestBody": {
|
|
1068
|
-
"content": {
|
|
1069
|
-
"application/json": {
|
|
1070
|
-
"schema": {
|
|
1071
|
-
"$ref": "#/components/schemas/RepositionCardStepRequestContent"
|
|
1072
|
-
}
|
|
1073
|
-
}
|
|
1074
|
-
},
|
|
1075
|
-
"required": true
|
|
1076
|
-
},
|
|
1212
|
+
"/card_tables/cards/{cardId}": {
|
|
1213
|
+
"get": {
|
|
1214
|
+
"description": "Get a card by ID",
|
|
1215
|
+
"operationId": "GetCard",
|
|
1077
1216
|
"parameters": [
|
|
1078
1217
|
{
|
|
1079
1218
|
"name": "cardId",
|
|
@@ -1087,44 +1226,41 @@
|
|
|
1087
1226
|
],
|
|
1088
1227
|
"responses": {
|
|
1089
1228
|
"200": {
|
|
1090
|
-
"description": "
|
|
1091
|
-
},
|
|
1092
|
-
"401": {
|
|
1093
|
-
"description": "UnauthorizedError 401 response",
|
|
1229
|
+
"description": "GetCard 200 response",
|
|
1094
1230
|
"content": {
|
|
1095
1231
|
"application/json": {
|
|
1096
1232
|
"schema": {
|
|
1097
|
-
"$ref": "#/components/schemas/
|
|
1233
|
+
"$ref": "#/components/schemas/GetCardResponseContent"
|
|
1098
1234
|
}
|
|
1099
1235
|
}
|
|
1100
1236
|
}
|
|
1101
1237
|
},
|
|
1102
|
-
"
|
|
1103
|
-
"description": "
|
|
1238
|
+
"401": {
|
|
1239
|
+
"description": "UnauthorizedError 401 response",
|
|
1104
1240
|
"content": {
|
|
1105
1241
|
"application/json": {
|
|
1106
1242
|
"schema": {
|
|
1107
|
-
"$ref": "#/components/schemas/
|
|
1243
|
+
"$ref": "#/components/schemas/UnauthorizedErrorResponseContent"
|
|
1108
1244
|
}
|
|
1109
1245
|
}
|
|
1110
1246
|
}
|
|
1111
1247
|
},
|
|
1112
|
-
"
|
|
1113
|
-
"description": "
|
|
1248
|
+
"403": {
|
|
1249
|
+
"description": "ForbiddenError 403 response",
|
|
1114
1250
|
"content": {
|
|
1115
1251
|
"application/json": {
|
|
1116
1252
|
"schema": {
|
|
1117
|
-
"$ref": "#/components/schemas/
|
|
1253
|
+
"$ref": "#/components/schemas/ForbiddenErrorResponseContent"
|
|
1118
1254
|
}
|
|
1119
1255
|
}
|
|
1120
1256
|
}
|
|
1121
1257
|
},
|
|
1122
|
-
"
|
|
1123
|
-
"description": "
|
|
1258
|
+
"404": {
|
|
1259
|
+
"description": "NotFoundError 404 response",
|
|
1124
1260
|
"content": {
|
|
1125
1261
|
"application/json": {
|
|
1126
1262
|
"schema": {
|
|
1127
|
-
"$ref": "#/components/schemas/
|
|
1263
|
+
"$ref": "#/components/schemas/NotFoundErrorResponseContent"
|
|
1128
1264
|
}
|
|
1129
1265
|
}
|
|
1130
1266
|
}
|
|
@@ -1144,7 +1280,7 @@
|
|
|
1144
1280
|
"Card Tables"
|
|
1145
1281
|
],
|
|
1146
1282
|
"x-basecamp-retry": {
|
|
1147
|
-
"maxAttempts":
|
|
1283
|
+
"maxAttempts": 3,
|
|
1148
1284
|
"baseDelayMs": 1000,
|
|
1149
1285
|
"backoff": "exponential",
|
|
1150
1286
|
"retryOn": [
|
|
@@ -1152,21 +1288,18 @@
|
|
|
1152
1288
|
503
|
|
1153
1289
|
]
|
|
1154
1290
|
}
|
|
1155
|
-
}
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
"description": "Create a step on a card",
|
|
1160
|
-
"operationId": "CreateCardStep",
|
|
1291
|
+
},
|
|
1292
|
+
"put": {
|
|
1293
|
+
"description": "Update an existing card",
|
|
1294
|
+
"operationId": "UpdateCard",
|
|
1161
1295
|
"requestBody": {
|
|
1162
1296
|
"content": {
|
|
1163
1297
|
"application/json": {
|
|
1164
1298
|
"schema": {
|
|
1165
|
-
"$ref": "#/components/schemas/
|
|
1299
|
+
"$ref": "#/components/schemas/UpdateCardRequestContent"
|
|
1166
1300
|
}
|
|
1167
1301
|
}
|
|
1168
|
-
}
|
|
1169
|
-
"required": true
|
|
1302
|
+
}
|
|
1170
1303
|
},
|
|
1171
1304
|
"parameters": [
|
|
1172
1305
|
{
|
|
@@ -1180,12 +1313,12 @@
|
|
|
1180
1313
|
}
|
|
1181
1314
|
],
|
|
1182
1315
|
"responses": {
|
|
1183
|
-
"
|
|
1184
|
-
"description": "
|
|
1316
|
+
"200": {
|
|
1317
|
+
"description": "UpdateCard 200 response",
|
|
1185
1318
|
"content": {
|
|
1186
1319
|
"application/json": {
|
|
1187
1320
|
"schema": {
|
|
1188
|
-
"$ref": "#/components/schemas/
|
|
1321
|
+
"$ref": "#/components/schemas/UpdateCardResponseContent"
|
|
1189
1322
|
}
|
|
1190
1323
|
}
|
|
1191
1324
|
}
|
|
@@ -1210,22 +1343,22 @@
|
|
|
1210
1343
|
}
|
|
1211
1344
|
}
|
|
1212
1345
|
},
|
|
1213
|
-
"
|
|
1214
|
-
"description": "
|
|
1346
|
+
"404": {
|
|
1347
|
+
"description": "NotFoundError 404 response",
|
|
1215
1348
|
"content": {
|
|
1216
1349
|
"application/json": {
|
|
1217
1350
|
"schema": {
|
|
1218
|
-
"$ref": "#/components/schemas/
|
|
1351
|
+
"$ref": "#/components/schemas/NotFoundErrorResponseContent"
|
|
1219
1352
|
}
|
|
1220
1353
|
}
|
|
1221
1354
|
}
|
|
1222
1355
|
},
|
|
1223
|
-
"
|
|
1224
|
-
"description": "
|
|
1356
|
+
"422": {
|
|
1357
|
+
"description": "ValidationError 422 response",
|
|
1225
1358
|
"content": {
|
|
1226
1359
|
"application/json": {
|
|
1227
1360
|
"schema": {
|
|
1228
|
-
"$ref": "#/components/schemas/
|
|
1361
|
+
"$ref": "#/components/schemas/ValidationErrorResponseContent"
|
|
1229
1362
|
}
|
|
1230
1363
|
}
|
|
1231
1364
|
}
|
|
@@ -1244,8 +1377,11 @@
|
|
|
1244
1377
|
"tags": [
|
|
1245
1378
|
"Card Tables"
|
|
1246
1379
|
],
|
|
1380
|
+
"x-basecamp-idempotent": {
|
|
1381
|
+
"natural": true
|
|
1382
|
+
},
|
|
1247
1383
|
"x-basecamp-retry": {
|
|
1248
|
-
"maxAttempts":
|
|
1384
|
+
"maxAttempts": 3,
|
|
1249
1385
|
"baseDelayMs": 1000,
|
|
1250
1386
|
"backoff": "exponential",
|
|
1251
1387
|
"retryOn": [
|
|
@@ -1255,13 +1391,23 @@
|
|
|
1255
1391
|
}
|
|
1256
1392
|
}
|
|
1257
1393
|
},
|
|
1258
|
-
"/card_tables/
|
|
1259
|
-
"
|
|
1260
|
-
"description": "
|
|
1261
|
-
"operationId": "
|
|
1394
|
+
"/card_tables/cards/{cardId}/moves.json": {
|
|
1395
|
+
"post": {
|
|
1396
|
+
"description": "Move a card to a different column",
|
|
1397
|
+
"operationId": "MoveCard",
|
|
1398
|
+
"requestBody": {
|
|
1399
|
+
"content": {
|
|
1400
|
+
"application/json": {
|
|
1401
|
+
"schema": {
|
|
1402
|
+
"$ref": "#/components/schemas/MoveCardRequestContent"
|
|
1403
|
+
}
|
|
1404
|
+
}
|
|
1405
|
+
},
|
|
1406
|
+
"required": true
|
|
1407
|
+
},
|
|
1262
1408
|
"parameters": [
|
|
1263
1409
|
{
|
|
1264
|
-
"name": "
|
|
1410
|
+
"name": "cardId",
|
|
1265
1411
|
"in": "path",
|
|
1266
1412
|
"schema": {
|
|
1267
1413
|
"type": "integer",
|
|
@@ -1271,15 +1417,8 @@
|
|
|
1271
1417
|
}
|
|
1272
1418
|
],
|
|
1273
1419
|
"responses": {
|
|
1274
|
-
"
|
|
1275
|
-
"description": "
|
|
1276
|
-
"content": {
|
|
1277
|
-
"application/json": {
|
|
1278
|
-
"schema": {
|
|
1279
|
-
"$ref": "#/components/schemas/GetCardColumnResponseContent"
|
|
1280
|
-
}
|
|
1281
|
-
}
|
|
1282
|
-
}
|
|
1420
|
+
"204": {
|
|
1421
|
+
"description": "MoveCard 204 response"
|
|
1283
1422
|
},
|
|
1284
1423
|
"401": {
|
|
1285
1424
|
"description": "UnauthorizedError 401 response",
|
|
@@ -1301,12 +1440,22 @@
|
|
|
1301
1440
|
}
|
|
1302
1441
|
}
|
|
1303
1442
|
},
|
|
1304
|
-
"
|
|
1305
|
-
"description": "
|
|
1443
|
+
"422": {
|
|
1444
|
+
"description": "ValidationError 422 response",
|
|
1306
1445
|
"content": {
|
|
1307
1446
|
"application/json": {
|
|
1308
1447
|
"schema": {
|
|
1309
|
-
"$ref": "#/components/schemas/
|
|
1448
|
+
"$ref": "#/components/schemas/ValidationErrorResponseContent"
|
|
1449
|
+
}
|
|
1450
|
+
}
|
|
1451
|
+
}
|
|
1452
|
+
},
|
|
1453
|
+
"429": {
|
|
1454
|
+
"description": "RateLimitError 429 response",
|
|
1455
|
+
"content": {
|
|
1456
|
+
"application/json": {
|
|
1457
|
+
"schema": {
|
|
1458
|
+
"$ref": "#/components/schemas/RateLimitErrorResponseContent"
|
|
1310
1459
|
}
|
|
1311
1460
|
}
|
|
1312
1461
|
}
|
|
@@ -1326,7 +1475,7 @@
|
|
|
1326
1475
|
"Card Tables"
|
|
1327
1476
|
],
|
|
1328
1477
|
"x-basecamp-retry": {
|
|
1329
|
-
"maxAttempts":
|
|
1478
|
+
"maxAttempts": 2,
|
|
1330
1479
|
"baseDelayMs": 1000,
|
|
1331
1480
|
"backoff": "exponential",
|
|
1332
1481
|
"retryOn": [
|
|
@@ -1334,22 +1483,25 @@
|
|
|
1334
1483
|
503
|
|
1335
1484
|
]
|
|
1336
1485
|
}
|
|
1337
|
-
}
|
|
1338
|
-
|
|
1339
|
-
|
|
1340
|
-
|
|
1486
|
+
}
|
|
1487
|
+
},
|
|
1488
|
+
"/card_tables/cards/{cardId}/positions.json": {
|
|
1489
|
+
"post": {
|
|
1490
|
+
"description": "Reposition a step within a card",
|
|
1491
|
+
"operationId": "RepositionCardStep",
|
|
1341
1492
|
"requestBody": {
|
|
1342
1493
|
"content": {
|
|
1343
1494
|
"application/json": {
|
|
1344
1495
|
"schema": {
|
|
1345
|
-
"$ref": "#/components/schemas/
|
|
1496
|
+
"$ref": "#/components/schemas/RepositionCardStepRequestContent"
|
|
1346
1497
|
}
|
|
1347
1498
|
}
|
|
1348
|
-
}
|
|
1499
|
+
},
|
|
1500
|
+
"required": true
|
|
1349
1501
|
},
|
|
1350
1502
|
"parameters": [
|
|
1351
1503
|
{
|
|
1352
|
-
"name": "
|
|
1504
|
+
"name": "cardId",
|
|
1353
1505
|
"in": "path",
|
|
1354
1506
|
"schema": {
|
|
1355
1507
|
"type": "integer",
|
|
@@ -1360,14 +1512,7 @@
|
|
|
1360
1512
|
],
|
|
1361
1513
|
"responses": {
|
|
1362
1514
|
"200": {
|
|
1363
|
-
"description": "
|
|
1364
|
-
"content": {
|
|
1365
|
-
"application/json": {
|
|
1366
|
-
"schema": {
|
|
1367
|
-
"$ref": "#/components/schemas/UpdateCardColumnResponseContent"
|
|
1368
|
-
}
|
|
1369
|
-
}
|
|
1370
|
-
}
|
|
1515
|
+
"description": "RepositionCardStep 200 response"
|
|
1371
1516
|
},
|
|
1372
1517
|
"401": {
|
|
1373
1518
|
"description": "UnauthorizedError 401 response",
|
|
@@ -1389,22 +1534,22 @@
|
|
|
1389
1534
|
}
|
|
1390
1535
|
}
|
|
1391
1536
|
},
|
|
1392
|
-
"
|
|
1393
|
-
"description": "
|
|
1537
|
+
"422": {
|
|
1538
|
+
"description": "ValidationError 422 response",
|
|
1394
1539
|
"content": {
|
|
1395
1540
|
"application/json": {
|
|
1396
1541
|
"schema": {
|
|
1397
|
-
"$ref": "#/components/schemas/
|
|
1542
|
+
"$ref": "#/components/schemas/ValidationErrorResponseContent"
|
|
1398
1543
|
}
|
|
1399
1544
|
}
|
|
1400
1545
|
}
|
|
1401
1546
|
},
|
|
1402
|
-
"
|
|
1403
|
-
"description": "
|
|
1547
|
+
"429": {
|
|
1548
|
+
"description": "RateLimitError 429 response",
|
|
1404
1549
|
"content": {
|
|
1405
1550
|
"application/json": {
|
|
1406
1551
|
"schema": {
|
|
1407
|
-
"$ref": "#/components/schemas/
|
|
1552
|
+
"$ref": "#/components/schemas/RateLimitErrorResponseContent"
|
|
1408
1553
|
}
|
|
1409
1554
|
}
|
|
1410
1555
|
}
|
|
@@ -1423,11 +1568,8 @@
|
|
|
1423
1568
|
"tags": [
|
|
1424
1569
|
"Card Tables"
|
|
1425
1570
|
],
|
|
1426
|
-
"x-basecamp-idempotent": {
|
|
1427
|
-
"natural": true
|
|
1428
|
-
},
|
|
1429
1571
|
"x-basecamp-retry": {
|
|
1430
|
-
"maxAttempts":
|
|
1572
|
+
"maxAttempts": 2,
|
|
1431
1573
|
"baseDelayMs": 1000,
|
|
1432
1574
|
"backoff": "exponential",
|
|
1433
1575
|
"retryOn": [
|
|
@@ -1437,15 +1579,15 @@
|
|
|
1437
1579
|
}
|
|
1438
1580
|
}
|
|
1439
1581
|
},
|
|
1440
|
-
"/card_tables/
|
|
1441
|
-
"
|
|
1442
|
-
"description": "
|
|
1443
|
-
"operationId": "
|
|
1582
|
+
"/card_tables/cards/{cardId}/steps.json": {
|
|
1583
|
+
"post": {
|
|
1584
|
+
"description": "Create a step on a card",
|
|
1585
|
+
"operationId": "CreateCardStep",
|
|
1444
1586
|
"requestBody": {
|
|
1445
1587
|
"content": {
|
|
1446
1588
|
"application/json": {
|
|
1447
1589
|
"schema": {
|
|
1448
|
-
"$ref": "#/components/schemas/
|
|
1590
|
+
"$ref": "#/components/schemas/CreateCardStepRequestContent"
|
|
1449
1591
|
}
|
|
1450
1592
|
}
|
|
1451
1593
|
},
|
|
@@ -1453,7 +1595,7 @@
|
|
|
1453
1595
|
},
|
|
1454
1596
|
"parameters": [
|
|
1455
1597
|
{
|
|
1456
|
-
"name": "
|
|
1598
|
+
"name": "cardId",
|
|
1457
1599
|
"in": "path",
|
|
1458
1600
|
"schema": {
|
|
1459
1601
|
"type": "integer",
|
|
@@ -1463,12 +1605,12 @@
|
|
|
1463
1605
|
}
|
|
1464
1606
|
],
|
|
1465
1607
|
"responses": {
|
|
1466
|
-
"
|
|
1467
|
-
"description": "
|
|
1608
|
+
"201": {
|
|
1609
|
+
"description": "CreateCardStep 201 response",
|
|
1468
1610
|
"content": {
|
|
1469
1611
|
"application/json": {
|
|
1470
1612
|
"schema": {
|
|
1471
|
-
"$ref": "#/components/schemas/
|
|
1613
|
+
"$ref": "#/components/schemas/CreateCardStepResponseContent"
|
|
1472
1614
|
}
|
|
1473
1615
|
}
|
|
1474
1616
|
}
|
|
@@ -1493,22 +1635,22 @@
|
|
|
1493
1635
|
}
|
|
1494
1636
|
}
|
|
1495
1637
|
},
|
|
1496
|
-
"
|
|
1497
|
-
"description": "
|
|
1638
|
+
"422": {
|
|
1639
|
+
"description": "ValidationError 422 response",
|
|
1498
1640
|
"content": {
|
|
1499
1641
|
"application/json": {
|
|
1500
1642
|
"schema": {
|
|
1501
|
-
"$ref": "#/components/schemas/
|
|
1643
|
+
"$ref": "#/components/schemas/ValidationErrorResponseContent"
|
|
1502
1644
|
}
|
|
1503
1645
|
}
|
|
1504
1646
|
}
|
|
1505
1647
|
},
|
|
1506
|
-
"
|
|
1507
|
-
"description": "
|
|
1648
|
+
"429": {
|
|
1649
|
+
"description": "RateLimitError 429 response",
|
|
1508
1650
|
"content": {
|
|
1509
1651
|
"application/json": {
|
|
1510
1652
|
"schema": {
|
|
1511
|
-
"$ref": "#/components/schemas/
|
|
1653
|
+
"$ref": "#/components/schemas/RateLimitErrorResponseContent"
|
|
1512
1654
|
}
|
|
1513
1655
|
}
|
|
1514
1656
|
}
|
|
@@ -1527,11 +1669,8 @@
|
|
|
1527
1669
|
"tags": [
|
|
1528
1670
|
"Card Tables"
|
|
1529
1671
|
],
|
|
1530
|
-
"x-basecamp-idempotent": {
|
|
1531
|
-
"natural": true
|
|
1532
|
-
},
|
|
1533
1672
|
"x-basecamp-retry": {
|
|
1534
|
-
"maxAttempts":
|
|
1673
|
+
"maxAttempts": 2,
|
|
1535
1674
|
"baseDelayMs": 1000,
|
|
1536
1675
|
"backoff": "exponential",
|
|
1537
1676
|
"retryOn": [
|
|
@@ -1541,10 +1680,10 @@
|
|
|
1541
1680
|
}
|
|
1542
1681
|
}
|
|
1543
1682
|
},
|
|
1544
|
-
"/card_tables/columns/{columnId}
|
|
1545
|
-
"
|
|
1546
|
-
"description": "
|
|
1547
|
-
"operationId": "
|
|
1683
|
+
"/card_tables/columns/{columnId}": {
|
|
1684
|
+
"get": {
|
|
1685
|
+
"description": "Get a card column by ID",
|
|
1686
|
+
"operationId": "GetCardColumn",
|
|
1548
1687
|
"parameters": [
|
|
1549
1688
|
{
|
|
1550
1689
|
"name": "columnId",
|
|
@@ -1558,11 +1697,11 @@
|
|
|
1558
1697
|
],
|
|
1559
1698
|
"responses": {
|
|
1560
1699
|
"200": {
|
|
1561
|
-
"description": "
|
|
1700
|
+
"description": "GetCardColumn 200 response",
|
|
1562
1701
|
"content": {
|
|
1563
1702
|
"application/json": {
|
|
1564
1703
|
"schema": {
|
|
1565
|
-
"$ref": "#/components/schemas/
|
|
1704
|
+
"$ref": "#/components/schemas/GetCardColumnResponseContent"
|
|
1566
1705
|
}
|
|
1567
1706
|
}
|
|
1568
1707
|
}
|
|
@@ -1611,9 +1750,6 @@
|
|
|
1611
1750
|
"tags": [
|
|
1612
1751
|
"Card Tables"
|
|
1613
1752
|
],
|
|
1614
|
-
"x-basecamp-idempotent": {
|
|
1615
|
-
"natural": true
|
|
1616
|
-
},
|
|
1617
1753
|
"x-basecamp-retry": {
|
|
1618
1754
|
"maxAttempts": 3,
|
|
1619
1755
|
"baseDelayMs": 1000,
|
|
@@ -1624,9 +1760,18 @@
|
|
|
1624
1760
|
]
|
|
1625
1761
|
}
|
|
1626
1762
|
},
|
|
1627
|
-
"
|
|
1628
|
-
"description": "
|
|
1629
|
-
"operationId": "
|
|
1763
|
+
"put": {
|
|
1764
|
+
"description": "Update an existing column",
|
|
1765
|
+
"operationId": "UpdateCardColumn",
|
|
1766
|
+
"requestBody": {
|
|
1767
|
+
"content": {
|
|
1768
|
+
"application/json": {
|
|
1769
|
+
"schema": {
|
|
1770
|
+
"$ref": "#/components/schemas/UpdateCardColumnRequestContent"
|
|
1771
|
+
}
|
|
1772
|
+
}
|
|
1773
|
+
}
|
|
1774
|
+
},
|
|
1630
1775
|
"parameters": [
|
|
1631
1776
|
{
|
|
1632
1777
|
"name": "columnId",
|
|
@@ -1640,11 +1785,11 @@
|
|
|
1640
1785
|
],
|
|
1641
1786
|
"responses": {
|
|
1642
1787
|
"200": {
|
|
1643
|
-
"description": "
|
|
1788
|
+
"description": "UpdateCardColumn 200 response",
|
|
1644
1789
|
"content": {
|
|
1645
1790
|
"application/json": {
|
|
1646
1791
|
"schema": {
|
|
1647
|
-
"$ref": "#/components/schemas/
|
|
1792
|
+
"$ref": "#/components/schemas/UpdateCardColumnResponseContent"
|
|
1648
1793
|
}
|
|
1649
1794
|
}
|
|
1650
1795
|
}
|
|
@@ -1669,22 +1814,22 @@
|
|
|
1669
1814
|
}
|
|
1670
1815
|
}
|
|
1671
1816
|
},
|
|
1672
|
-
"
|
|
1673
|
-
"description": "
|
|
1817
|
+
"404": {
|
|
1818
|
+
"description": "NotFoundError 404 response",
|
|
1674
1819
|
"content": {
|
|
1675
1820
|
"application/json": {
|
|
1676
1821
|
"schema": {
|
|
1677
|
-
"$ref": "#/components/schemas/
|
|
1822
|
+
"$ref": "#/components/schemas/NotFoundErrorResponseContent"
|
|
1678
1823
|
}
|
|
1679
1824
|
}
|
|
1680
1825
|
}
|
|
1681
1826
|
},
|
|
1682
|
-
"
|
|
1683
|
-
"description": "
|
|
1827
|
+
"422": {
|
|
1828
|
+
"description": "ValidationError 422 response",
|
|
1684
1829
|
"content": {
|
|
1685
1830
|
"application/json": {
|
|
1686
1831
|
"schema": {
|
|
1687
|
-
"$ref": "#/components/schemas/
|
|
1832
|
+
"$ref": "#/components/schemas/ValidationErrorResponseContent"
|
|
1688
1833
|
}
|
|
1689
1834
|
}
|
|
1690
1835
|
}
|
|
@@ -1703,8 +1848,11 @@
|
|
|
1703
1848
|
"tags": [
|
|
1704
1849
|
"Card Tables"
|
|
1705
1850
|
],
|
|
1851
|
+
"x-basecamp-idempotent": {
|
|
1852
|
+
"natural": true
|
|
1853
|
+
},
|
|
1706
1854
|
"x-basecamp-retry": {
|
|
1707
|
-
"maxAttempts":
|
|
1855
|
+
"maxAttempts": 3,
|
|
1708
1856
|
"baseDelayMs": 1000,
|
|
1709
1857
|
"backoff": "exponential",
|
|
1710
1858
|
"retryOn": [
|
|
@@ -3871,7 +4019,7 @@
|
|
|
3871
4019
|
},
|
|
3872
4020
|
"/chats/{campfireId}/lines/{lineId}": {
|
|
3873
4021
|
"delete": {
|
|
3874
|
-
"description": "Delete a campfire line",
|
|
4022
|
+
"description": "Delete a campfire line; allowed for the line's creator or an admin.\nThe API responds 403 Forbidden otherwise.",
|
|
3875
4023
|
"operationId": "DeleteCampfireLine",
|
|
3876
4024
|
"parameters": [
|
|
3877
4025
|
{
|
|
@@ -4041,6 +4189,120 @@
|
|
|
4041
4189
|
503
|
|
4042
4190
|
]
|
|
4043
4191
|
}
|
|
4192
|
+
},
|
|
4193
|
+
"put": {
|
|
4194
|
+
"description": "Update an existing campfire line; the content is always treated as rich text (HTML).\nThe server coerces every edited line to rich text and ignores any content\ntype hint. Only the line's creator may edit it, and only text and\nrich-text lines are editable.",
|
|
4195
|
+
"operationId": "UpdateCampfireLine",
|
|
4196
|
+
"requestBody": {
|
|
4197
|
+
"content": {
|
|
4198
|
+
"application/json": {
|
|
4199
|
+
"schema": {
|
|
4200
|
+
"$ref": "#/components/schemas/UpdateCampfireLineRequestContent"
|
|
4201
|
+
}
|
|
4202
|
+
}
|
|
4203
|
+
},
|
|
4204
|
+
"required": true
|
|
4205
|
+
},
|
|
4206
|
+
"parameters": [
|
|
4207
|
+
{
|
|
4208
|
+
"name": "campfireId",
|
|
4209
|
+
"in": "path",
|
|
4210
|
+
"schema": {
|
|
4211
|
+
"type": "integer",
|
|
4212
|
+
"format": "int64"
|
|
4213
|
+
},
|
|
4214
|
+
"required": true
|
|
4215
|
+
},
|
|
4216
|
+
{
|
|
4217
|
+
"name": "lineId",
|
|
4218
|
+
"in": "path",
|
|
4219
|
+
"schema": {
|
|
4220
|
+
"type": "integer",
|
|
4221
|
+
"format": "int64"
|
|
4222
|
+
},
|
|
4223
|
+
"required": true
|
|
4224
|
+
}
|
|
4225
|
+
],
|
|
4226
|
+
"responses": {
|
|
4227
|
+
"204": {
|
|
4228
|
+
"description": "UpdateCampfireLine 204 response"
|
|
4229
|
+
},
|
|
4230
|
+
"401": {
|
|
4231
|
+
"description": "UnauthorizedError 401 response",
|
|
4232
|
+
"content": {
|
|
4233
|
+
"application/json": {
|
|
4234
|
+
"schema": {
|
|
4235
|
+
"$ref": "#/components/schemas/UnauthorizedErrorResponseContent"
|
|
4236
|
+
}
|
|
4237
|
+
}
|
|
4238
|
+
}
|
|
4239
|
+
},
|
|
4240
|
+
"403": {
|
|
4241
|
+
"description": "ForbiddenError 403 response",
|
|
4242
|
+
"content": {
|
|
4243
|
+
"application/json": {
|
|
4244
|
+
"schema": {
|
|
4245
|
+
"$ref": "#/components/schemas/ForbiddenErrorResponseContent"
|
|
4246
|
+
}
|
|
4247
|
+
}
|
|
4248
|
+
}
|
|
4249
|
+
},
|
|
4250
|
+
"404": {
|
|
4251
|
+
"description": "NotFoundError 404 response",
|
|
4252
|
+
"content": {
|
|
4253
|
+
"application/json": {
|
|
4254
|
+
"schema": {
|
|
4255
|
+
"$ref": "#/components/schemas/NotFoundErrorResponseContent"
|
|
4256
|
+
}
|
|
4257
|
+
}
|
|
4258
|
+
}
|
|
4259
|
+
},
|
|
4260
|
+
"422": {
|
|
4261
|
+
"description": "ValidationError 422 response",
|
|
4262
|
+
"content": {
|
|
4263
|
+
"application/json": {
|
|
4264
|
+
"schema": {
|
|
4265
|
+
"$ref": "#/components/schemas/ValidationErrorResponseContent"
|
|
4266
|
+
}
|
|
4267
|
+
}
|
|
4268
|
+
}
|
|
4269
|
+
},
|
|
4270
|
+
"429": {
|
|
4271
|
+
"description": "RateLimitError 429 response",
|
|
4272
|
+
"content": {
|
|
4273
|
+
"application/json": {
|
|
4274
|
+
"schema": {
|
|
4275
|
+
"$ref": "#/components/schemas/RateLimitErrorResponseContent"
|
|
4276
|
+
}
|
|
4277
|
+
}
|
|
4278
|
+
}
|
|
4279
|
+
},
|
|
4280
|
+
"500": {
|
|
4281
|
+
"description": "InternalServerError 500 response",
|
|
4282
|
+
"content": {
|
|
4283
|
+
"application/json": {
|
|
4284
|
+
"schema": {
|
|
4285
|
+
"$ref": "#/components/schemas/InternalServerErrorResponseContent"
|
|
4286
|
+
}
|
|
4287
|
+
}
|
|
4288
|
+
}
|
|
4289
|
+
}
|
|
4290
|
+
},
|
|
4291
|
+
"tags": [
|
|
4292
|
+
"Campfire"
|
|
4293
|
+
],
|
|
4294
|
+
"x-basecamp-idempotent": {
|
|
4295
|
+
"natural": true
|
|
4296
|
+
},
|
|
4297
|
+
"x-basecamp-retry": {
|
|
4298
|
+
"maxAttempts": 3,
|
|
4299
|
+
"baseDelayMs": 1000,
|
|
4300
|
+
"backoff": "exponential",
|
|
4301
|
+
"retryOn": [
|
|
4302
|
+
429,
|
|
4303
|
+
503
|
|
4304
|
+
]
|
|
4305
|
+
}
|
|
4044
4306
|
}
|
|
4045
4307
|
},
|
|
4046
4308
|
"/chats/{campfireId}/uploads.json": {
|
|
@@ -4905,112 +5167,13 @@
|
|
|
4905
5167
|
}
|
|
4906
5168
|
}
|
|
4907
5169
|
}
|
|
4908
|
-
},
|
|
4909
|
-
"404": {
|
|
4910
|
-
"description": "NotFoundError 404 response",
|
|
4911
|
-
"content": {
|
|
4912
|
-
"application/json": {
|
|
4913
|
-
"schema": {
|
|
4914
|
-
"$ref": "#/components/schemas/NotFoundErrorResponseContent"
|
|
4915
|
-
}
|
|
4916
|
-
}
|
|
4917
|
-
}
|
|
4918
|
-
},
|
|
4919
|
-
"500": {
|
|
4920
|
-
"description": "InternalServerError 500 response",
|
|
4921
|
-
"content": {
|
|
4922
|
-
"application/json": {
|
|
4923
|
-
"schema": {
|
|
4924
|
-
"$ref": "#/components/schemas/InternalServerErrorResponseContent"
|
|
4925
|
-
}
|
|
4926
|
-
}
|
|
4927
|
-
}
|
|
4928
|
-
}
|
|
4929
|
-
},
|
|
4930
|
-
"tags": [
|
|
4931
|
-
"Messages"
|
|
4932
|
-
],
|
|
4933
|
-
"x-basecamp-retry": {
|
|
4934
|
-
"maxAttempts": 3,
|
|
4935
|
-
"baseDelayMs": 1000,
|
|
4936
|
-
"backoff": "exponential",
|
|
4937
|
-
"retryOn": [
|
|
4938
|
-
429,
|
|
4939
|
-
503
|
|
4940
|
-
]
|
|
4941
|
-
}
|
|
4942
|
-
},
|
|
4943
|
-
"put": {
|
|
4944
|
-
"description": "Update an existing comment",
|
|
4945
|
-
"operationId": "UpdateComment",
|
|
4946
|
-
"requestBody": {
|
|
4947
|
-
"content": {
|
|
4948
|
-
"application/json": {
|
|
4949
|
-
"schema": {
|
|
4950
|
-
"$ref": "#/components/schemas/UpdateCommentRequestContent"
|
|
4951
|
-
}
|
|
4952
|
-
}
|
|
4953
|
-
},
|
|
4954
|
-
"required": true
|
|
4955
|
-
},
|
|
4956
|
-
"parameters": [
|
|
4957
|
-
{
|
|
4958
|
-
"name": "commentId",
|
|
4959
|
-
"in": "path",
|
|
4960
|
-
"schema": {
|
|
4961
|
-
"type": "integer",
|
|
4962
|
-
"format": "int64"
|
|
4963
|
-
},
|
|
4964
|
-
"required": true
|
|
4965
|
-
}
|
|
4966
|
-
],
|
|
4967
|
-
"responses": {
|
|
4968
|
-
"200": {
|
|
4969
|
-
"description": "UpdateComment 200 response",
|
|
4970
|
-
"content": {
|
|
4971
|
-
"application/json": {
|
|
4972
|
-
"schema": {
|
|
4973
|
-
"$ref": "#/components/schemas/UpdateCommentResponseContent"
|
|
4974
|
-
}
|
|
4975
|
-
}
|
|
4976
|
-
}
|
|
4977
|
-
},
|
|
4978
|
-
"401": {
|
|
4979
|
-
"description": "UnauthorizedError 401 response",
|
|
4980
|
-
"content": {
|
|
4981
|
-
"application/json": {
|
|
4982
|
-
"schema": {
|
|
4983
|
-
"$ref": "#/components/schemas/UnauthorizedErrorResponseContent"
|
|
4984
|
-
}
|
|
4985
|
-
}
|
|
4986
|
-
}
|
|
4987
|
-
},
|
|
4988
|
-
"403": {
|
|
4989
|
-
"description": "ForbiddenError 403 response",
|
|
4990
|
-
"content": {
|
|
4991
|
-
"application/json": {
|
|
4992
|
-
"schema": {
|
|
4993
|
-
"$ref": "#/components/schemas/ForbiddenErrorResponseContent"
|
|
4994
|
-
}
|
|
4995
|
-
}
|
|
4996
|
-
}
|
|
4997
|
-
},
|
|
4998
|
-
"404": {
|
|
4999
|
-
"description": "NotFoundError 404 response",
|
|
5000
|
-
"content": {
|
|
5001
|
-
"application/json": {
|
|
5002
|
-
"schema": {
|
|
5003
|
-
"$ref": "#/components/schemas/NotFoundErrorResponseContent"
|
|
5004
|
-
}
|
|
5005
|
-
}
|
|
5006
|
-
}
|
|
5007
|
-
},
|
|
5008
|
-
"422": {
|
|
5009
|
-
"description": "ValidationError 422 response",
|
|
5170
|
+
},
|
|
5171
|
+
"404": {
|
|
5172
|
+
"description": "NotFoundError 404 response",
|
|
5010
5173
|
"content": {
|
|
5011
5174
|
"application/json": {
|
|
5012
5175
|
"schema": {
|
|
5013
|
-
"$ref": "#/components/schemas/
|
|
5176
|
+
"$ref": "#/components/schemas/NotFoundErrorResponseContent"
|
|
5014
5177
|
}
|
|
5015
5178
|
}
|
|
5016
5179
|
}
|
|
@@ -5029,9 +5192,6 @@
|
|
|
5029
5192
|
"tags": [
|
|
5030
5193
|
"Messages"
|
|
5031
5194
|
],
|
|
5032
|
-
"x-basecamp-idempotent": {
|
|
5033
|
-
"natural": true
|
|
5034
|
-
},
|
|
5035
5195
|
"x-basecamp-retry": {
|
|
5036
5196
|
"maxAttempts": 3,
|
|
5037
5197
|
"baseDelayMs": 1000,
|
|
@@ -5041,30 +5201,38 @@
|
|
|
5041
5201
|
503
|
|
5042
5202
|
]
|
|
5043
5203
|
}
|
|
5044
|
-
}
|
|
5045
|
-
|
|
5046
|
-
|
|
5047
|
-
|
|
5048
|
-
"description": "Clone an existing tool to create a new one",
|
|
5049
|
-
"operationId": "CloneTool",
|
|
5204
|
+
},
|
|
5205
|
+
"put": {
|
|
5206
|
+
"description": "Update an existing comment",
|
|
5207
|
+
"operationId": "UpdateComment",
|
|
5050
5208
|
"requestBody": {
|
|
5051
5209
|
"content": {
|
|
5052
5210
|
"application/json": {
|
|
5053
5211
|
"schema": {
|
|
5054
|
-
"$ref": "#/components/schemas/
|
|
5212
|
+
"$ref": "#/components/schemas/UpdateCommentRequestContent"
|
|
5055
5213
|
}
|
|
5056
5214
|
}
|
|
5057
5215
|
},
|
|
5058
5216
|
"required": true
|
|
5059
5217
|
},
|
|
5060
|
-
"parameters": [
|
|
5218
|
+
"parameters": [
|
|
5219
|
+
{
|
|
5220
|
+
"name": "commentId",
|
|
5221
|
+
"in": "path",
|
|
5222
|
+
"schema": {
|
|
5223
|
+
"type": "integer",
|
|
5224
|
+
"format": "int64"
|
|
5225
|
+
},
|
|
5226
|
+
"required": true
|
|
5227
|
+
}
|
|
5228
|
+
],
|
|
5061
5229
|
"responses": {
|
|
5062
|
-
"
|
|
5063
|
-
"description": "
|
|
5230
|
+
"200": {
|
|
5231
|
+
"description": "UpdateComment 200 response",
|
|
5064
5232
|
"content": {
|
|
5065
5233
|
"application/json": {
|
|
5066
5234
|
"schema": {
|
|
5067
|
-
"$ref": "#/components/schemas/
|
|
5235
|
+
"$ref": "#/components/schemas/UpdateCommentResponseContent"
|
|
5068
5236
|
}
|
|
5069
5237
|
}
|
|
5070
5238
|
}
|
|
@@ -5089,22 +5257,22 @@
|
|
|
5089
5257
|
}
|
|
5090
5258
|
}
|
|
5091
5259
|
},
|
|
5092
|
-
"
|
|
5093
|
-
"description": "
|
|
5260
|
+
"404": {
|
|
5261
|
+
"description": "NotFoundError 404 response",
|
|
5094
5262
|
"content": {
|
|
5095
5263
|
"application/json": {
|
|
5096
5264
|
"schema": {
|
|
5097
|
-
"$ref": "#/components/schemas/
|
|
5265
|
+
"$ref": "#/components/schemas/NotFoundErrorResponseContent"
|
|
5098
5266
|
}
|
|
5099
5267
|
}
|
|
5100
5268
|
}
|
|
5101
5269
|
},
|
|
5102
|
-
"
|
|
5103
|
-
"description": "
|
|
5270
|
+
"422": {
|
|
5271
|
+
"description": "ValidationError 422 response",
|
|
5104
5272
|
"content": {
|
|
5105
5273
|
"application/json": {
|
|
5106
5274
|
"schema": {
|
|
5107
|
-
"$ref": "#/components/schemas/
|
|
5275
|
+
"$ref": "#/components/schemas/ValidationErrorResponseContent"
|
|
5108
5276
|
}
|
|
5109
5277
|
}
|
|
5110
5278
|
}
|
|
@@ -5121,10 +5289,13 @@
|
|
|
5121
5289
|
}
|
|
5122
5290
|
},
|
|
5123
5291
|
"tags": [
|
|
5124
|
-
"
|
|
5292
|
+
"Messages"
|
|
5125
5293
|
],
|
|
5294
|
+
"x-basecamp-idempotent": {
|
|
5295
|
+
"natural": true
|
|
5296
|
+
},
|
|
5126
5297
|
"x-basecamp-retry": {
|
|
5127
|
-
"maxAttempts":
|
|
5298
|
+
"maxAttempts": 3,
|
|
5128
5299
|
"baseDelayMs": 1000,
|
|
5129
5300
|
"backoff": "exponential",
|
|
5130
5301
|
"retryOn": [
|
|
@@ -7757,7 +7928,7 @@
|
|
|
7757
7928
|
},
|
|
7758
7929
|
"/my/readings.json": {
|
|
7759
7930
|
"get": {
|
|
7760
|
-
"description": "Get the current user's notification inbox (the \"Hey!\" menu).\nNotifications are grouped into unreads, reads, and memories
|
|
7931
|
+
"description": "Get the current user's notification inbox (the \"Hey!\" menu).\nNotifications are grouped into unreads, reads, bubble-ups, and\nscheduled bubble-ups (`memories` remains as an always-empty\nplaceholder on BC5). Reads are paginated (50 per page). Unreads are\ncapped at 100. Bubble-ups are capped per `limit_bubble_ups`.",
|
|
7761
7932
|
"operationId": "GetMyNotifications",
|
|
7762
7933
|
"parameters": [
|
|
7763
7934
|
{
|
|
@@ -13211,7 +13382,7 @@
|
|
|
13211
13382
|
},
|
|
13212
13383
|
"/reports/schedules/upcoming.json": {
|
|
13213
13384
|
"get": {
|
|
13214
|
-
"description": "Get upcoming schedule entries within a date window",
|
|
13385
|
+
"description": "Get upcoming schedule entries and assignable items within a date window.\nThis endpoint is preserved as the canonical API path on BC5;\nthe BC5 `/calendar` web view is HTML-only.",
|
|
13215
13386
|
"operationId": "GetUpcomingSchedule",
|
|
13216
13387
|
"parameters": [
|
|
13217
13388
|
{
|
|
@@ -16244,16 +16415,17 @@
|
|
|
16244
16415
|
}
|
|
16245
16416
|
},
|
|
16246
16417
|
"put": {
|
|
16247
|
-
"description": "
|
|
16248
|
-
"operationId": "
|
|
16418
|
+
"description": "Replace a todo with a new complete representation.\nThe request body is the todo's full writable state: any writable field\nomitted from the request is cleared server-side (empty/missing\nassignee_ids clears assignees, missing description clears it, and so\non). content is required — a request without it is rejected.\nTo set some fields while preserving the rest, use the SDK's merge-safe\nupdate or edit methods, which GET the current todo and PUT the full\nrepresentation back. Those read-modify-write helpers are not atomic:\na concurrent write between the GET and PUT is overwritten (last write\nwins for the whole representation; the window is one round-trip).",
|
|
16419
|
+
"operationId": "ReplaceTodo",
|
|
16249
16420
|
"requestBody": {
|
|
16250
16421
|
"content": {
|
|
16251
16422
|
"application/json": {
|
|
16252
16423
|
"schema": {
|
|
16253
|
-
"$ref": "#/components/schemas/
|
|
16424
|
+
"$ref": "#/components/schemas/ReplaceTodoRequestContent"
|
|
16254
16425
|
}
|
|
16255
16426
|
}
|
|
16256
|
-
}
|
|
16427
|
+
},
|
|
16428
|
+
"required": true
|
|
16257
16429
|
},
|
|
16258
16430
|
"parameters": [
|
|
16259
16431
|
{
|
|
@@ -16268,11 +16440,11 @@
|
|
|
16268
16440
|
],
|
|
16269
16441
|
"responses": {
|
|
16270
16442
|
"200": {
|
|
16271
|
-
"description": "
|
|
16443
|
+
"description": "ReplaceTodo 200 response",
|
|
16272
16444
|
"content": {
|
|
16273
16445
|
"application/json": {
|
|
16274
16446
|
"schema": {
|
|
16275
|
-
"$ref": "#/components/schemas/
|
|
16447
|
+
"$ref": "#/components/schemas/ReplaceTodoResponseContent"
|
|
16276
16448
|
}
|
|
16277
16449
|
}
|
|
16278
16450
|
}
|
|
@@ -16342,6 +16514,10 @@
|
|
|
16342
16514
|
429,
|
|
16343
16515
|
503
|
|
16344
16516
|
]
|
|
16517
|
+
},
|
|
16518
|
+
"x-basecamp-write-semantics": {
|
|
16519
|
+
"mode": "replace",
|
|
16520
|
+
"clearsOmitted": true
|
|
16345
16521
|
}
|
|
16346
16522
|
}
|
|
16347
16523
|
},
|
|
@@ -18765,7 +18941,8 @@
|
|
|
18765
18941
|
"format": "int64"
|
|
18766
18942
|
},
|
|
18767
18943
|
"download_url": {
|
|
18768
|
-
"type": "string"
|
|
18944
|
+
"type": "string",
|
|
18945
|
+
"x-basecamp-auth-routable-url": {}
|
|
18769
18946
|
}
|
|
18770
18947
|
}
|
|
18771
18948
|
},
|
|
@@ -19681,25 +19858,6 @@
|
|
|
19681
19858
|
}
|
|
19682
19859
|
}
|
|
19683
19860
|
},
|
|
19684
|
-
"CloneToolRequestContent": {
|
|
19685
|
-
"type": "object",
|
|
19686
|
-
"properties": {
|
|
19687
|
-
"source_recording_id": {
|
|
19688
|
-
"type": "integer",
|
|
19689
|
-
"format": "int64",
|
|
19690
|
-
"x-go-type-skip-optional-pointer": false
|
|
19691
|
-
},
|
|
19692
|
-
"title": {
|
|
19693
|
-
"type": "string"
|
|
19694
|
-
}
|
|
19695
|
-
},
|
|
19696
|
-
"required": [
|
|
19697
|
-
"source_recording_id"
|
|
19698
|
-
]
|
|
19699
|
-
},
|
|
19700
|
-
"CloneToolResponseContent": {
|
|
19701
|
-
"$ref": "#/components/schemas/Tool"
|
|
19702
|
-
},
|
|
19703
19861
|
"Comment": {
|
|
19704
19862
|
"type": "object",
|
|
19705
19863
|
"properties": {
|
|
@@ -20358,6 +20516,25 @@
|
|
|
20358
20516
|
"CreateTodolistResponseContent": {
|
|
20359
20517
|
"$ref": "#/components/schemas/Todolist"
|
|
20360
20518
|
},
|
|
20519
|
+
"CreateToolRequestContent": {
|
|
20520
|
+
"type": "object",
|
|
20521
|
+
"properties": {
|
|
20522
|
+
"tool_type": {
|
|
20523
|
+
"type": "string",
|
|
20524
|
+
"description": "Tool type to add to the project dock. Values: Chat::Transcript|Inbox|Kanban::Board|Message::Board|Questionnaire|Schedule|Todoset|Vault."
|
|
20525
|
+
},
|
|
20526
|
+
"title": {
|
|
20527
|
+
"type": "string",
|
|
20528
|
+
"description": "Title for the new tool. When omitted, Basecamp assigns the next available default title for the tool type."
|
|
20529
|
+
}
|
|
20530
|
+
},
|
|
20531
|
+
"required": [
|
|
20532
|
+
"tool_type"
|
|
20533
|
+
]
|
|
20534
|
+
},
|
|
20535
|
+
"CreateToolResponseContent": {
|
|
20536
|
+
"$ref": "#/components/schemas/Tool"
|
|
20537
|
+
},
|
|
20361
20538
|
"CreateUploadRequestContent": {
|
|
20362
20539
|
"type": "object",
|
|
20363
20540
|
"properties": {
|
|
@@ -21207,7 +21384,22 @@
|
|
|
21207
21384
|
"type": "array",
|
|
21208
21385
|
"items": {
|
|
21209
21386
|
"$ref": "#/components/schemas/Notification"
|
|
21210
|
-
}
|
|
21387
|
+
},
|
|
21388
|
+
"description": "Legacy \"save forever\" collection. Permanently `[]` on BC5 by documented\ncontract (`doc/api/sections/my_notifications.md`, codified by BC3 #11628):\nan always-empty placeholder superseded by `bubble_ups`. BC4 (the `four`\nbranch) still populates it — an accepted BC4→BC5 subtractive delta\nrecorded in `spec/api-gaps/memories-emptied-regression.md`. New\nintegrations should use `bubble_ups` / `scheduled_bubble_ups` and must\nnot rely on `memories` on BC5."
|
|
21389
|
+
},
|
|
21390
|
+
"bubble_ups": {
|
|
21391
|
+
"type": "array",
|
|
21392
|
+
"items": {
|
|
21393
|
+
"$ref": "#/components/schemas/Notification"
|
|
21394
|
+
},
|
|
21395
|
+
"description": "Items the user has saved with Bubble Up (BC5 addition). Roughly the\nsuccessor to `memories` but with optional scheduling — see\n`scheduled_bubble_ups` for the time-deferred subset."
|
|
21396
|
+
},
|
|
21397
|
+
"scheduled_bubble_ups": {
|
|
21398
|
+
"type": "array",
|
|
21399
|
+
"items": {
|
|
21400
|
+
"$ref": "#/components/schemas/Notification"
|
|
21401
|
+
},
|
|
21402
|
+
"description": "Bubble Ups scheduled to resurface in the future (BC5 addition)."
|
|
21211
21403
|
}
|
|
21212
21404
|
}
|
|
21213
21405
|
},
|
|
@@ -22262,7 +22454,8 @@
|
|
|
22262
22454
|
"x-go-type-skip-optional-pointer": true
|
|
22263
22455
|
},
|
|
22264
22456
|
"section": {
|
|
22265
|
-
"type": "string"
|
|
22457
|
+
"type": "string",
|
|
22458
|
+
"description": "The notification category: `inbox`, `chats`, `pings`, `bubbles`,\nor `mentions`."
|
|
22266
22459
|
},
|
|
22267
22460
|
"unread_count": {
|
|
22268
22461
|
"type": "integer",
|
|
@@ -22317,6 +22510,19 @@
|
|
|
22317
22510
|
"memory_url": {
|
|
22318
22511
|
"type": "string"
|
|
22319
22512
|
},
|
|
22513
|
+
"bubble_up_url": {
|
|
22514
|
+
"type": "string",
|
|
22515
|
+
"description": "URL for the Bubble Up record covering this notification (BC5 addition).\nEligibility-gated — only present on items the current user can bubble up."
|
|
22516
|
+
},
|
|
22517
|
+
"bubble_up_at": {
|
|
22518
|
+
"type": "string",
|
|
22519
|
+
"description": "Scheduled resurfacing time when this item is queued as a scheduled\nBubble Up (BC5 addition). Absent when there is no scheduled time.",
|
|
22520
|
+
"x-go-type": "time.Time",
|
|
22521
|
+
"x-go-type-import": {
|
|
22522
|
+
"path": "time"
|
|
22523
|
+
},
|
|
22524
|
+
"x-go-type-skip-optional-pointer": true
|
|
22525
|
+
},
|
|
22320
22526
|
"subscription_url": {
|
|
22321
22527
|
"type": "string"
|
|
22322
22528
|
},
|
|
@@ -22353,6 +22559,7 @@
|
|
|
22353
22559
|
},
|
|
22354
22560
|
"OutOfOffice": {
|
|
22355
22561
|
"type": "object",
|
|
22562
|
+
"description": "When out of office is not enabled, `enabled` is `false` and\n`start_date`, `end_date`, and `back_on_date` are omitted.",
|
|
22356
22563
|
"properties": {
|
|
22357
22564
|
"person": {
|
|
22358
22565
|
"$ref": "#/components/schemas/OutOfOfficePerson"
|
|
@@ -22368,6 +22575,10 @@
|
|
|
22368
22575
|
},
|
|
22369
22576
|
"end_date": {
|
|
22370
22577
|
"type": "string"
|
|
22578
|
+
},
|
|
22579
|
+
"back_on_date": {
|
|
22580
|
+
"type": "string",
|
|
22581
|
+
"description": "First working day after the out-of-office window ends.\nOmitted when out of office is not enabled."
|
|
22371
22582
|
}
|
|
22372
22583
|
}
|
|
22373
22584
|
},
|
|
@@ -22399,6 +22610,10 @@
|
|
|
22399
22610
|
"name": {
|
|
22400
22611
|
"type": "string",
|
|
22401
22612
|
"format": "password"
|
|
22613
|
+
},
|
|
22614
|
+
"avatar_url": {
|
|
22615
|
+
"type": "string",
|
|
22616
|
+
"format": "password"
|
|
22402
22617
|
}
|
|
22403
22618
|
},
|
|
22404
22619
|
"required": [
|
|
@@ -22463,6 +22678,15 @@
|
|
|
22463
22678
|
"redact": false
|
|
22464
22679
|
}
|
|
22465
22680
|
},
|
|
22681
|
+
"tagline": {
|
|
22682
|
+
"type": "string",
|
|
22683
|
+
"description": "Alias of `bio` introduced in BC5. BC3 emits both keys with identical content;\nolder BC4 responses may omit `tagline`. Prefer `bio` for cross-version reads.",
|
|
22684
|
+
"format": "password",
|
|
22685
|
+
"x-basecamp-sensitive": {
|
|
22686
|
+
"category": "pii",
|
|
22687
|
+
"redact": false
|
|
22688
|
+
}
|
|
22689
|
+
},
|
|
22466
22690
|
"location": {
|
|
22467
22691
|
"type": "string",
|
|
22468
22692
|
"format": "password",
|
|
@@ -22562,7 +22786,8 @@
|
|
|
22562
22786
|
"type": "string"
|
|
22563
22787
|
},
|
|
22564
22788
|
"time_zone_name": {
|
|
22565
|
-
"type": "string"
|
|
22789
|
+
"type": "string",
|
|
22790
|
+
"description": "Returned as a Rails-style name (e.g. \"Central Time (US & Canada)\")."
|
|
22566
22791
|
},
|
|
22567
22792
|
"first_week_day": {
|
|
22568
22793
|
"type": "string"
|
|
@@ -22577,7 +22802,7 @@
|
|
|
22577
22802
|
"properties": {
|
|
22578
22803
|
"time_zone_name": {
|
|
22579
22804
|
"type": "string",
|
|
22580
|
-
"description": "Time zone name (e.g
|
|
22805
|
+
"description": "Time zone name. Accepts any valid Rails time zone name (e.g.\n\"London\", \"UTC\") as well as IANA identifiers (e.g.\n\"America/Chicago\"), which are normalized to the matching\nRails-style name before saving."
|
|
22581
22806
|
},
|
|
22582
22807
|
"first_week_day": {
|
|
22583
22808
|
"type": "string",
|
|
@@ -22660,6 +22885,12 @@
|
|
|
22660
22885
|
"purpose": {
|
|
22661
22886
|
"type": "string"
|
|
22662
22887
|
},
|
|
22888
|
+
"start_date": {
|
|
22889
|
+
"type": "string"
|
|
22890
|
+
},
|
|
22891
|
+
"end_date": {
|
|
22892
|
+
"type": "string"
|
|
22893
|
+
},
|
|
22663
22894
|
"clients_enabled": {
|
|
22664
22895
|
"type": "boolean"
|
|
22665
22896
|
},
|
|
@@ -23276,6 +23507,57 @@
|
|
|
23276
23507
|
"url"
|
|
23277
23508
|
]
|
|
23278
23509
|
},
|
|
23510
|
+
"ReplaceTodoRequestContent": {
|
|
23511
|
+
"type": "object",
|
|
23512
|
+
"properties": {
|
|
23513
|
+
"content": {
|
|
23514
|
+
"type": "string"
|
|
23515
|
+
},
|
|
23516
|
+
"description": {
|
|
23517
|
+
"type": "string"
|
|
23518
|
+
},
|
|
23519
|
+
"assignee_ids": {
|
|
23520
|
+
"type": "array",
|
|
23521
|
+
"items": {
|
|
23522
|
+
"type": "integer",
|
|
23523
|
+
"format": "int64"
|
|
23524
|
+
}
|
|
23525
|
+
},
|
|
23526
|
+
"completion_subscriber_ids": {
|
|
23527
|
+
"type": "array",
|
|
23528
|
+
"items": {
|
|
23529
|
+
"type": "integer",
|
|
23530
|
+
"format": "int64"
|
|
23531
|
+
}
|
|
23532
|
+
},
|
|
23533
|
+
"notify": {
|
|
23534
|
+
"type": "boolean",
|
|
23535
|
+
"x-go-type-skip-optional-pointer": false
|
|
23536
|
+
},
|
|
23537
|
+
"due_on": {
|
|
23538
|
+
"type": "string",
|
|
23539
|
+
"x-go-type": "types.Date",
|
|
23540
|
+
"x-go-type-import": {
|
|
23541
|
+
"path": "github.com/basecamp/basecamp-sdk/go/pkg/types"
|
|
23542
|
+
},
|
|
23543
|
+
"x-go-type-skip-optional-pointer": true
|
|
23544
|
+
},
|
|
23545
|
+
"starts_on": {
|
|
23546
|
+
"type": "string",
|
|
23547
|
+
"x-go-type": "types.Date",
|
|
23548
|
+
"x-go-type-import": {
|
|
23549
|
+
"path": "github.com/basecamp/basecamp-sdk/go/pkg/types"
|
|
23550
|
+
},
|
|
23551
|
+
"x-go-type-skip-optional-pointer": true
|
|
23552
|
+
}
|
|
23553
|
+
},
|
|
23554
|
+
"required": [
|
|
23555
|
+
"content"
|
|
23556
|
+
]
|
|
23557
|
+
},
|
|
23558
|
+
"ReplaceTodoResponseContent": {
|
|
23559
|
+
"$ref": "#/components/schemas/Todo"
|
|
23560
|
+
},
|
|
23279
23561
|
"RepositionCardStepRequestContent": {
|
|
23280
23562
|
"type": "object",
|
|
23281
23563
|
"properties": {
|
|
@@ -24048,6 +24330,13 @@
|
|
|
24048
24330
|
},
|
|
24049
24331
|
"boosts_url": {
|
|
24050
24332
|
"type": "string"
|
|
24333
|
+
},
|
|
24334
|
+
"steps": {
|
|
24335
|
+
"type": "array",
|
|
24336
|
+
"items": {
|
|
24337
|
+
"$ref": "#/components/schemas/CardStep"
|
|
24338
|
+
},
|
|
24339
|
+
"description": "Steps embedded in the Todo response (BC5 addition). The shared\n`steps/step` jbuilder partial emits the same shape as `CardStep`,\nso the existing `CardStepList` is reused."
|
|
24051
24340
|
}
|
|
24052
24341
|
},
|
|
24053
24342
|
"required": [
|
|
@@ -24444,6 +24733,24 @@
|
|
|
24444
24733
|
},
|
|
24445
24734
|
"app_todolists_url": {
|
|
24446
24735
|
"type": "string"
|
|
24736
|
+
},
|
|
24737
|
+
"todos_count": {
|
|
24738
|
+
"type": "integer",
|
|
24739
|
+
"description": "Total count of todos across all todolists in this todoset (BC5 addition).",
|
|
24740
|
+
"format": "int32"
|
|
24741
|
+
},
|
|
24742
|
+
"completed_loose_todos_count": {
|
|
24743
|
+
"type": "integer",
|
|
24744
|
+
"description": "Count of completed loose todos at the todoset level (BC5 addition).",
|
|
24745
|
+
"format": "int32"
|
|
24746
|
+
},
|
|
24747
|
+
"todos_url": {
|
|
24748
|
+
"type": "string",
|
|
24749
|
+
"description": "API URL for listing todos directly under this todoset (BC5 addition)."
|
|
24750
|
+
},
|
|
24751
|
+
"app_todos_url": {
|
|
24752
|
+
"type": "string",
|
|
24753
|
+
"description": "In-app URL for viewing the todoset's todos (BC5 addition)."
|
|
24447
24754
|
}
|
|
24448
24755
|
},
|
|
24449
24756
|
"required": [
|
|
@@ -24564,6 +24871,18 @@
|
|
|
24564
24871
|
"UpdateAccountNameResponseContent": {
|
|
24565
24872
|
"$ref": "#/components/schemas/Account"
|
|
24566
24873
|
},
|
|
24874
|
+
"UpdateCampfireLineRequestContent": {
|
|
24875
|
+
"type": "object",
|
|
24876
|
+
"properties": {
|
|
24877
|
+
"content": {
|
|
24878
|
+
"type": "string",
|
|
24879
|
+
"description": "The new line content, interpreted as rich text (HTML)"
|
|
24880
|
+
}
|
|
24881
|
+
},
|
|
24882
|
+
"required": [
|
|
24883
|
+
"content"
|
|
24884
|
+
]
|
|
24885
|
+
},
|
|
24567
24886
|
"UpdateCardColumnRequestContent": {
|
|
24568
24887
|
"type": "object",
|
|
24569
24888
|
"properties": {
|
|
@@ -25020,54 +25339,6 @@
|
|
|
25020
25339
|
"UpdateTimesheetEntryResponseContent": {
|
|
25021
25340
|
"$ref": "#/components/schemas/TimesheetEntry"
|
|
25022
25341
|
},
|
|
25023
|
-
"UpdateTodoRequestContent": {
|
|
25024
|
-
"type": "object",
|
|
25025
|
-
"properties": {
|
|
25026
|
-
"content": {
|
|
25027
|
-
"type": "string"
|
|
25028
|
-
},
|
|
25029
|
-
"description": {
|
|
25030
|
-
"type": "string"
|
|
25031
|
-
},
|
|
25032
|
-
"assignee_ids": {
|
|
25033
|
-
"type": "array",
|
|
25034
|
-
"items": {
|
|
25035
|
-
"type": "integer",
|
|
25036
|
-
"format": "int64"
|
|
25037
|
-
}
|
|
25038
|
-
},
|
|
25039
|
-
"completion_subscriber_ids": {
|
|
25040
|
-
"type": "array",
|
|
25041
|
-
"items": {
|
|
25042
|
-
"type": "integer",
|
|
25043
|
-
"format": "int64"
|
|
25044
|
-
}
|
|
25045
|
-
},
|
|
25046
|
-
"notify": {
|
|
25047
|
-
"type": "boolean",
|
|
25048
|
-
"x-go-type-skip-optional-pointer": false
|
|
25049
|
-
},
|
|
25050
|
-
"due_on": {
|
|
25051
|
-
"type": "string",
|
|
25052
|
-
"x-go-type": "types.Date",
|
|
25053
|
-
"x-go-type-import": {
|
|
25054
|
-
"path": "github.com/basecamp/basecamp-sdk/go/pkg/types"
|
|
25055
|
-
},
|
|
25056
|
-
"x-go-type-skip-optional-pointer": true
|
|
25057
|
-
},
|
|
25058
|
-
"starts_on": {
|
|
25059
|
-
"type": "string",
|
|
25060
|
-
"x-go-type": "types.Date",
|
|
25061
|
-
"x-go-type-import": {
|
|
25062
|
-
"path": "github.com/basecamp/basecamp-sdk/go/pkg/types"
|
|
25063
|
-
},
|
|
25064
|
-
"x-go-type-skip-optional-pointer": true
|
|
25065
|
-
}
|
|
25066
|
-
}
|
|
25067
|
-
},
|
|
25068
|
-
"UpdateTodoResponseContent": {
|
|
25069
|
-
"$ref": "#/components/schemas/Todo"
|
|
25070
|
-
},
|
|
25071
25342
|
"UpdateTodolistOrGroupRequestContent": {
|
|
25072
25343
|
"type": "object",
|
|
25073
25344
|
"properties": {
|
|
@@ -25244,7 +25515,8 @@
|
|
|
25244
25515
|
"x-go-type-skip-optional-pointer": true
|
|
25245
25516
|
},
|
|
25246
25517
|
"download_url": {
|
|
25247
|
-
"type": "string"
|
|
25518
|
+
"type": "string",
|
|
25519
|
+
"x-basecamp-auth-routable-url": {}
|
|
25248
25520
|
},
|
|
25249
25521
|
"filename": {
|
|
25250
25522
|
"type": "string"
|
|
@@ -25431,7 +25703,8 @@
|
|
|
25431
25703
|
"type": "array",
|
|
25432
25704
|
"items": {
|
|
25433
25705
|
"$ref": "#/components/schemas/WebhookDelivery"
|
|
25434
|
-
}
|
|
25706
|
+
},
|
|
25707
|
+
"description": "Up to the 25 most recent delivery exchanges, most recent first.\nEmpty when the webhook hasn't delivered anything yet."
|
|
25435
25708
|
}
|
|
25436
25709
|
},
|
|
25437
25710
|
"required": [
|