@faable/deploy-sdk 2.4.0 → 2.6.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/spec/openapi.json CHANGED
@@ -195,27 +195,31 @@
195
195
  ],
196
196
  "properties": {
197
197
  "name": {
198
- "type": "string"
198
+ "type": "string",
199
+ "minLength": 3,
200
+ "maxLength": 50,
201
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9 ._'()&-]*[A-Za-z0-9)]$"
199
202
  },
200
203
  "description": {
201
204
  "type": "string"
202
205
  },
203
- "slug": {
204
- "type": "string"
205
- },
206
206
  "collaborators": {
207
207
  "type": "array",
208
208
  "items": {
209
209
  "type": "string"
210
210
  }
211
211
  }
212
- }
212
+ },
213
+ "additionalProperties": false
213
214
  },
214
215
  "ProjectUpdate": {
215
216
  "type": "object",
216
217
  "properties": {
217
218
  "name": {
218
- "type": "string"
219
+ "type": "string",
220
+ "minLength": 3,
221
+ "maxLength": 50,
222
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9 ._'()&-]*[A-Za-z0-9)]$"
219
223
  },
220
224
  "description": {
221
225
  "type": "string"
@@ -226,7 +230,8 @@
226
230
  "type": "string"
227
231
  }
228
232
  }
229
- }
233
+ },
234
+ "additionalProperties": false
230
235
  },
231
236
  "AppStatus": {
232
237
  "type": "object",
@@ -452,6 +457,20 @@
452
457
  ],
453
458
  "default": "standard"
454
459
  },
460
+ "AppBuildMode": {
461
+ "enum": [
462
+ "local",
463
+ "remote"
464
+ ],
465
+ "default": "local"
466
+ },
467
+ "AppDeployOutput": {
468
+ "enum": [
469
+ "image",
470
+ "artifact"
471
+ ],
472
+ "default": "image"
473
+ },
455
474
  "AppCoexistenceRouting": {
456
475
  "enum": [
457
476
  "cookie",
@@ -472,6 +491,8 @@
472
491
  "runtime",
473
492
  "runtime_strategy",
474
493
  "mode",
494
+ "build_mode",
495
+ "deploy_output",
475
496
  "instance_type",
476
497
  "region",
477
498
  "status",
@@ -528,6 +549,22 @@
528
549
  "mode": {
529
550
  "$ref": "#/components/schemas/AppMode"
530
551
  },
552
+ "build_mode": {
553
+ "$ref": "#/components/schemas/AppBuildMode"
554
+ },
555
+ "deploy_output": {
556
+ "$ref": "#/components/schemas/AppDeployOutput"
557
+ },
558
+ "root_dir": {
559
+ "anyOf": [
560
+ {
561
+ "type": "string"
562
+ },
563
+ {
564
+ "type": "null"
565
+ }
566
+ ]
567
+ },
531
568
  "coexistence_routing": {
532
569
  "anyOf": [
533
570
  {
@@ -790,10 +827,148 @@
790
827
  "reason": {
791
828
  "type": "string",
792
829
  "description": "Why the deployment failed (shown to the user on ERROR)"
830
+ },
831
+ "runtime_image": {
832
+ "type": "string",
833
+ "description": "Digest-pinned runtime image stamped at first materialization (artifact deploys)"
793
834
  }
794
835
  },
795
836
  "additionalProperties": false
796
837
  },
838
+ "DeploymentSource": {
839
+ "type": "object",
840
+ "required": [
841
+ "manifest"
842
+ ],
843
+ "properties": {
844
+ "manifest": {
845
+ "type": "array",
846
+ "items": {
847
+ "type": "object",
848
+ "required": [
849
+ "path",
850
+ "sha",
851
+ "size"
852
+ ],
853
+ "properties": {
854
+ "path": {
855
+ "type": "string",
856
+ "minLength": 1,
857
+ "maxLength": 1024
858
+ },
859
+ "sha": {
860
+ "type": "string",
861
+ "pattern": "^[a-f0-9]{64}$"
862
+ },
863
+ "size": {
864
+ "type": "integer",
865
+ "minimum": 0,
866
+ "maximum": 104857600
867
+ },
868
+ "mode": {
869
+ "type": "integer",
870
+ "minimum": 0,
871
+ "maximum": 4095
872
+ }
873
+ }
874
+ },
875
+ "minItems": 1,
876
+ "maxItems": 20000
877
+ },
878
+ "plan": {
879
+ "type": "object",
880
+ "properties": {},
881
+ "additionalProperties": true
882
+ }
883
+ }
884
+ },
885
+ "DeploymentArtifact": {
886
+ "type": "object",
887
+ "required": [
888
+ "sha256",
889
+ "size",
890
+ "format",
891
+ "runtime",
892
+ "profile"
893
+ ],
894
+ "properties": {
895
+ "key": {
896
+ "type": "string",
897
+ "maxLength": 512
898
+ },
899
+ "sha256": {
900
+ "type": "string",
901
+ "pattern": "^[a-f0-9]{64}$"
902
+ },
903
+ "size": {
904
+ "type": "integer",
905
+ "minimum": 1,
906
+ "maximum": 2147483648
907
+ },
908
+ "format": {
909
+ "type": "string",
910
+ "enum": [
911
+ "tar.zst"
912
+ ]
913
+ },
914
+ "runtime": {
915
+ "type": "object",
916
+ "required": [
917
+ "name"
918
+ ],
919
+ "properties": {
920
+ "name": {
921
+ "enum": [
922
+ "node",
923
+ "python",
924
+ "static"
925
+ ]
926
+ },
927
+ "version": {
928
+ "anyOf": [
929
+ {
930
+ "type": "string"
931
+ },
932
+ {
933
+ "type": "null"
934
+ }
935
+ ]
936
+ }
937
+ }
938
+ },
939
+ "profile": {
940
+ "enum": [
941
+ "node-full",
942
+ "next-standalone",
943
+ "static",
944
+ "python-venv"
945
+ ]
946
+ },
947
+ "start_command": {
948
+ "anyOf": [
949
+ {
950
+ "type": "string",
951
+ "minLength": 1,
952
+ "maxLength": 2048
953
+ },
954
+ {
955
+ "type": "null"
956
+ }
957
+ ]
958
+ },
959
+ "static": {
960
+ "type": "object",
961
+ "required": [
962
+ "spa"
963
+ ],
964
+ "properties": {
965
+ "spa": {
966
+ "type": "boolean"
967
+ }
968
+ }
969
+ }
970
+ }
971
+ },
797
972
  "Deployment": {
798
973
  "type": "object",
799
974
  "required": [
@@ -830,6 +1005,12 @@
830
1005
  "github_commit_message": {
831
1006
  "type": "string"
832
1007
  },
1008
+ "source": {
1009
+ "$ref": "#/components/schemas/DeploymentSource"
1010
+ },
1011
+ "artifact": {
1012
+ "$ref": "#/components/schemas/DeploymentArtifact"
1013
+ },
833
1014
  "status": {
834
1015
  "$ref": "#/components/schemas/DeploymentStatus"
835
1016
  },
@@ -952,17 +1133,20 @@
952
1133
  },
953
1134
  "type": {
954
1135
  "type": "string"
1136
+ },
1137
+ "source": {
1138
+ "$ref": "#/components/schemas/DeploymentSource"
955
1139
  }
956
1140
  }
957
1141
  },
958
1142
  "DeploymentUpdate": {
959
1143
  "type": "object",
960
- "required": [
961
- "image"
962
- ],
963
1144
  "properties": {
964
1145
  "image": {
965
1146
  "type": "string"
1147
+ },
1148
+ "artifact": {
1149
+ "$ref": "#/components/schemas/DeploymentArtifact"
966
1150
  }
967
1151
  }
968
1152
  },
@@ -1710,54 +1894,6 @@
1710
1894
  },
1711
1895
  "additionalProperties": false
1712
1896
  },
1713
- "ProjectFavorites": {
1714
- "type": "object",
1715
- "required": [
1716
- "id",
1717
- "user_id",
1718
- "favorites",
1719
- "recents",
1720
- "metadata",
1721
- "createdAt"
1722
- ],
1723
- "properties": {
1724
- "id": {
1725
- "type": "string",
1726
- "description": "ProjectFavorites ID"
1727
- },
1728
- "user_id": {
1729
- "type": "string"
1730
- },
1731
- "favorites": {
1732
- "type": "array",
1733
- "items": {
1734
- "type": "string"
1735
- }
1736
- },
1737
- "recents": {
1738
- "type": "array",
1739
- "items": {
1740
- "type": "string"
1741
- }
1742
- },
1743
- "metadata": {
1744
- "type": "object",
1745
- "properties": {},
1746
- "additionalProperties": true,
1747
- "default": {}
1748
- },
1749
- "createdAt": {
1750
- "type": "string",
1751
- "description": "ProjectFavorites creation date"
1752
- },
1753
- "updatedAt": {
1754
- "type": "string",
1755
- "description": "ProjectFavorites updated date"
1756
- }
1757
- },
1758
- "description": "ProjectFavorites",
1759
- "additionalProperties": false
1760
- },
1761
1897
  "AppChecknameResponse": {
1762
1898
  "type": "object",
1763
1899
  "required": [
@@ -1784,12 +1920,6 @@
1784
1920
  }
1785
1921
  }
1786
1922
  },
1787
- "StatusUpdate": {
1788
- "type": "object",
1789
- "properties": {},
1790
- "description": "Update Status",
1791
- "additionalProperties": true
1792
- },
1793
1923
  "EventAppStatus": {
1794
1924
  "type": "object",
1795
1925
  "required": [
@@ -1900,88 +2030,6 @@
1900
2030
  },
1901
2031
  "description": "Event Domain Status",
1902
2032
  "additionalProperties": false
1903
- },
1904
- "GithubRepo": {
1905
- "type": "object",
1906
- "required": [
1907
- "id",
1908
- "full_name",
1909
- "private",
1910
- "default_branch",
1911
- "installation_id"
1912
- ],
1913
- "properties": {
1914
- "id": {
1915
- "type": "number"
1916
- },
1917
- "full_name": {
1918
- "type": "string",
1919
- "description": "owner/repo"
1920
- },
1921
- "private": {
1922
- "type": "boolean"
1923
- },
1924
- "default_branch": {
1925
- "type": "string"
1926
- },
1927
- "installation_id": {
1928
- "type": "number",
1929
- "description": "Id of the Faable GitHub App installation that grants access"
1930
- },
1931
- "description": {
1932
- "type": "string",
1933
- "description": "Repository description from GitHub"
1934
- },
1935
- "permissions": {
1936
- "type": "object",
1937
- "required": [
1938
- "admin",
1939
- "push",
1940
- "pull"
1941
- ],
1942
- "properties": {
1943
- "admin": {
1944
- "type": "boolean"
1945
- },
1946
- "push": {
1947
- "type": "boolean"
1948
- },
1949
- "pull": {
1950
- "type": "boolean"
1951
- }
1952
- }
1953
- }
1954
- }
1955
- },
1956
- "GithubInstallation": {
1957
- "type": "object",
1958
- "required": [
1959
- "installation_id",
1960
- "account_login",
1961
- "account_type",
1962
- "app_slug"
1963
- ],
1964
- "properties": {
1965
- "installation_id": {
1966
- "type": "number"
1967
- },
1968
- "account_login": {
1969
- "type": "string",
1970
- "description": "Org or user that owns the installation"
1971
- },
1972
- "account_type": {
1973
- "type": "string",
1974
- "description": "Organization | User"
1975
- },
1976
- "account_avatar_url": {
1977
- "type": "string",
1978
- "description": "Avatar of the org/user that owns the install"
1979
- },
1980
- "app_slug": {
1981
- "type": "string",
1982
- "description": "GitHub App slug — used to build the install/configure URL"
1983
- }
1984
- }
1985
2033
  }
1986
2034
  }
1987
2035
  },
@@ -2157,21 +2205,22 @@
2157
2205
  ],
2158
2206
  "properties": {
2159
2207
  "name": {
2160
- "type": "string"
2208
+ "type": "string",
2209
+ "minLength": 3,
2210
+ "maxLength": 50,
2211
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9 ._'()&-]*[A-Za-z0-9)]$"
2161
2212
  },
2162
2213
  "description": {
2163
2214
  "type": "string"
2164
2215
  },
2165
- "slug": {
2166
- "type": "string"
2167
- },
2168
2216
  "collaborators": {
2169
2217
  "type": "array",
2170
2218
  "items": {
2171
2219
  "type": "string"
2172
2220
  }
2173
2221
  }
2174
- }
2222
+ },
2223
+ "additionalProperties": false
2175
2224
  }
2176
2225
  }
2177
2226
  }
@@ -2344,7 +2393,10 @@
2344
2393
  "type": "object",
2345
2394
  "properties": {
2346
2395
  "name": {
2347
- "type": "string"
2396
+ "type": "string",
2397
+ "minLength": 3,
2398
+ "maxLength": 50,
2399
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9 ._'()&-]*[A-Za-z0-9)]$"
2348
2400
  },
2349
2401
  "description": {
2350
2402
  "type": "string"
@@ -2355,7 +2407,8 @@
2355
2407
  "type": "string"
2356
2408
  }
2357
2409
  }
2358
- }
2410
+ },
2411
+ "additionalProperties": false
2359
2412
  }
2360
2413
  }
2361
2414
  }
@@ -2690,6 +2743,8 @@
2690
2743
  "runtime",
2691
2744
  "runtime_strategy",
2692
2745
  "mode",
2746
+ "build_mode",
2747
+ "deploy_output",
2693
2748
  "instance_type",
2694
2749
  "region",
2695
2750
  "status",
@@ -2746,6 +2801,22 @@
2746
2801
  "mode": {
2747
2802
  "$ref": "#/components/schemas/AppMode"
2748
2803
  },
2804
+ "build_mode": {
2805
+ "$ref": "#/components/schemas/AppBuildMode"
2806
+ },
2807
+ "deploy_output": {
2808
+ "$ref": "#/components/schemas/AppDeployOutput"
2809
+ },
2810
+ "root_dir": {
2811
+ "anyOf": [
2812
+ {
2813
+ "type": "string"
2814
+ },
2815
+ {
2816
+ "type": "null"
2817
+ }
2818
+ ]
2819
+ },
2749
2820
  "coexistence_routing": {
2750
2821
  "anyOf": [
2751
2822
  {
@@ -2893,6 +2964,8 @@
2893
2964
  "runtime",
2894
2965
  "runtime_strategy",
2895
2966
  "mode",
2967
+ "build_mode",
2968
+ "deploy_output",
2896
2969
  "instance_type",
2897
2970
  "region",
2898
2971
  "status",
@@ -2949,6 +3022,22 @@
2949
3022
  "mode": {
2950
3023
  "$ref": "#/components/schemas/AppMode"
2951
3024
  },
3025
+ "build_mode": {
3026
+ "$ref": "#/components/schemas/AppBuildMode"
3027
+ },
3028
+ "deploy_output": {
3029
+ "$ref": "#/components/schemas/AppDeployOutput"
3030
+ },
3031
+ "root_dir": {
3032
+ "anyOf": [
3033
+ {
3034
+ "type": "string"
3035
+ },
3036
+ {
3037
+ "type": "null"
3038
+ }
3039
+ ]
3040
+ },
2952
3041
  "coexistence_routing": {
2953
3042
  "anyOf": [
2954
3043
  {
@@ -3105,6 +3194,8 @@
3105
3194
  "runtime",
3106
3195
  "runtime_strategy",
3107
3196
  "mode",
3197
+ "build_mode",
3198
+ "deploy_output",
3108
3199
  "instance_type",
3109
3200
  "region",
3110
3201
  "status",
@@ -3161,6 +3252,22 @@
3161
3252
  "mode": {
3162
3253
  "$ref": "#/components/schemas/AppMode"
3163
3254
  },
3255
+ "build_mode": {
3256
+ "$ref": "#/components/schemas/AppBuildMode"
3257
+ },
3258
+ "deploy_output": {
3259
+ "$ref": "#/components/schemas/AppDeployOutput"
3260
+ },
3261
+ "root_dir": {
3262
+ "anyOf": [
3263
+ {
3264
+ "type": "string"
3265
+ },
3266
+ {
3267
+ "type": "null"
3268
+ }
3269
+ ]
3270
+ },
3164
3271
  "coexistence_routing": {
3165
3272
  "anyOf": [
3166
3273
  {
@@ -3288,6 +3395,8 @@
3288
3395
  "runtime",
3289
3396
  "runtime_strategy",
3290
3397
  "mode",
3398
+ "build_mode",
3399
+ "deploy_output",
3291
3400
  "instance_type",
3292
3401
  "region",
3293
3402
  "status",
@@ -3344,21 +3453,37 @@
3344
3453
  "mode": {
3345
3454
  "$ref": "#/components/schemas/AppMode"
3346
3455
  },
3347
- "coexistence_routing": {
3456
+ "build_mode": {
3457
+ "$ref": "#/components/schemas/AppBuildMode"
3458
+ },
3459
+ "deploy_output": {
3460
+ "$ref": "#/components/schemas/AppDeployOutput"
3461
+ },
3462
+ "root_dir": {
3348
3463
  "anyOf": [
3349
3464
  {
3350
- "enum": [
3351
- "cookie",
3352
- "path"
3353
- ],
3354
- "default": "cookie"
3465
+ "type": "string"
3355
3466
  },
3356
3467
  {
3357
3468
  "type": "null"
3358
3469
  }
3359
3470
  ]
3360
3471
  },
3361
- "coexistence_keep_versions": {
3472
+ "coexistence_routing": {
3473
+ "anyOf": [
3474
+ {
3475
+ "enum": [
3476
+ "cookie",
3477
+ "path"
3478
+ ],
3479
+ "default": "cookie"
3480
+ },
3481
+ {
3482
+ "type": "null"
3483
+ }
3484
+ ]
3485
+ },
3486
+ "coexistence_keep_versions": {
3362
3487
  "anyOf": [
3363
3488
  {
3364
3489
  "type": "number",
@@ -4400,6 +4525,9 @@
4400
4525
  },
4401
4526
  "type": {
4402
4527
  "type": "string"
4528
+ },
4529
+ "source": {
4530
+ "$ref": "#/components/schemas/DeploymentSource"
4403
4531
  }
4404
4532
  }
4405
4533
  }
@@ -4455,6 +4583,12 @@
4455
4583
  "github_commit_message": {
4456
4584
  "type": "string"
4457
4585
  },
4586
+ "source": {
4587
+ "$ref": "#/components/schemas/DeploymentSource"
4588
+ },
4589
+ "artifact": {
4590
+ "$ref": "#/components/schemas/DeploymentArtifact"
4591
+ },
4458
4592
  "status": {
4459
4593
  "$ref": "#/components/schemas/DeploymentStatus"
4460
4594
  },
@@ -4549,6 +4683,12 @@
4549
4683
  "github_commit_message": {
4550
4684
  "type": "string"
4551
4685
  },
4686
+ "source": {
4687
+ "$ref": "#/components/schemas/DeploymentSource"
4688
+ },
4689
+ "artifact": {
4690
+ "$ref": "#/components/schemas/DeploymentArtifact"
4691
+ },
4552
4692
  "status": {
4553
4693
  "$ref": "#/components/schemas/DeploymentStatus"
4554
4694
  },
@@ -4588,12 +4728,12 @@
4588
4728
  "application/json": {
4589
4729
  "schema": {
4590
4730
  "type": "object",
4591
- "required": [
4592
- "image"
4593
- ],
4594
4731
  "properties": {
4595
4732
  "image": {
4596
4733
  "type": "string"
4734
+ },
4735
+ "artifact": {
4736
+ "$ref": "#/components/schemas/DeploymentArtifact"
4597
4737
  }
4598
4738
  }
4599
4739
  }
@@ -4659,6 +4799,12 @@
4659
4799
  "github_commit_message": {
4660
4800
  "type": "string"
4661
4801
  },
4802
+ "source": {
4803
+ "$ref": "#/components/schemas/DeploymentSource"
4804
+ },
4805
+ "artifact": {
4806
+ "$ref": "#/components/schemas/DeploymentArtifact"
4807
+ },
4662
4808
  "status": {
4663
4809
  "$ref": "#/components/schemas/DeploymentStatus"
4664
4810
  },
@@ -4751,6 +4897,12 @@
4751
4897
  "github_commit_message": {
4752
4898
  "type": "string"
4753
4899
  },
4900
+ "source": {
4901
+ "$ref": "#/components/schemas/DeploymentSource"
4902
+ },
4903
+ "artifact": {
4904
+ "$ref": "#/components/schemas/DeploymentArtifact"
4905
+ },
4754
4906
  "status": {
4755
4907
  "$ref": "#/components/schemas/DeploymentStatus"
4756
4908
  },
@@ -4779,87 +4931,6 @@
4779
4931
  }
4780
4932
  },
4781
4933
  "/deployment/{deployment_id}/logs": {
4782
- "post": {
4783
- "operationId": "deployment/upload_logs",
4784
- "summary": "Upload deployment build logs",
4785
- "tags": [
4786
- "deployments"
4787
- ],
4788
- "description": "Attach the CLI build/deploy output to a deployment",
4789
- "requestBody": {
4790
- "required": true,
4791
- "content": {
4792
- "application/json": {
4793
- "schema": {
4794
- "type": "object",
4795
- "required": [
4796
- "content"
4797
- ],
4798
- "properties": {
4799
- "content": {
4800
- "type": "string"
4801
- },
4802
- "truncated": {
4803
- "type": "boolean",
4804
- "default": false
4805
- }
4806
- }
4807
- }
4808
- }
4809
- }
4810
- },
4811
- "parameters": [
4812
- {
4813
- "schema": {
4814
- "type": "string"
4815
- },
4816
- "in": "path",
4817
- "name": "deployment_id",
4818
- "required": true
4819
- }
4820
- ],
4821
- "security": [
4822
- {
4823
- "faable_user": [],
4824
- "faable_cli": [],
4825
- "apikey": [],
4826
- "faable_machine": []
4827
- }
4828
- ],
4829
- "x-internal": true,
4830
- "responses": {
4831
- "201": {
4832
- "description": "Default Response",
4833
- "content": {
4834
- "application/json": {
4835
- "schema": {
4836
- "type": "object",
4837
- "required": [
4838
- "id",
4839
- "deployment_id",
4840
- "truncated",
4841
- "size"
4842
- ],
4843
- "properties": {
4844
- "id": {
4845
- "type": "string"
4846
- },
4847
- "deployment_id": {
4848
- "type": "string"
4849
- },
4850
- "truncated": {
4851
- "type": "boolean"
4852
- },
4853
- "size": {
4854
- "type": "number"
4855
- }
4856
- }
4857
- }
4858
- }
4859
- }
4860
- }
4861
- }
4862
- },
4863
4934
  "get": {
4864
4935
  "operationId": "deployment/get_logs",
4865
4936
  "summary": "Get deployment build logs",
@@ -4896,10 +4967,7 @@
4896
4967
  "id",
4897
4968
  "deployment_id",
4898
4969
  "app_id",
4899
- "team",
4900
- "content",
4901
- "truncated",
4902
- "size"
4970
+ "team"
4903
4971
  ],
4904
4972
  "properties": {
4905
4973
  "id": {
@@ -4923,6 +4991,15 @@
4923
4991
  "size": {
4924
4992
  "type": "number"
4925
4993
  },
4994
+ "runtime_content": {
4995
+ "type": "string"
4996
+ },
4997
+ "runtime_truncated": {
4998
+ "type": "boolean"
4999
+ },
5000
+ "runtime_size": {
5001
+ "type": "number"
5002
+ },
4926
5003
  "createdAt": {
4927
5004
  "type": "string"
4928
5005
  },
@@ -5708,106 +5785,14 @@
5708
5785
  }
5709
5786
  }
5710
5787
  },
5711
- "/contact": {
5712
- "get": {
5713
- "operationId": "contact/list",
5714
- "summary": "List Contacts",
5715
- "tags": [
5716
- "contacts"
5717
- ],
5718
- "description": "List Contacts",
5719
- "parameters": [
5720
- {
5721
- "schema": {
5722
- "type": "number",
5723
- "minimum": 1,
5724
- "maximum": 200
5725
- },
5726
- "in": "query",
5727
- "name": "pageSize",
5728
- "required": false,
5729
- "description": "Number of items per page (max 200)"
5730
- },
5731
- {
5732
- "schema": {
5733
- "type": "string"
5734
- },
5735
- "in": "query",
5736
- "name": "cursor",
5737
- "required": false,
5738
- "description": "Cursor for next page"
5739
- },
5740
- {
5741
- "schema": {
5742
- "type": "string"
5743
- },
5744
- "in": "query",
5745
- "name": "next",
5746
- "required": false,
5747
- "description": "Cursor returned by the previous page"
5748
- },
5749
- {
5750
- "schema": {
5751
- "type": "string"
5752
- },
5753
- "in": "query",
5754
- "name": "query",
5755
- "required": false,
5756
- "description": "Filter using a FaableQL query"
5757
- }
5758
- ],
5759
- "security": [
5760
- {
5761
- "faable_user": [],
5762
- "faable_cli": [],
5763
- "apikey": [],
5764
- "faable_machine": []
5765
- }
5766
- ],
5767
- "x-internal": true,
5768
- "responses": {
5769
- "200": {
5770
- "description": "Default Response",
5771
- "content": {
5772
- "application/json": {
5773
- "schema": {
5774
- "type": "object",
5775
- "required": [
5776
- "next",
5777
- "results"
5778
- ],
5779
- "properties": {
5780
- "next": {
5781
- "anyOf": [
5782
- {
5783
- "type": "string"
5784
- },
5785
- {
5786
- "type": "null"
5787
- }
5788
- ]
5789
- },
5790
- "results": {
5791
- "type": "array",
5792
- "items": {
5793
- "$ref": "#/components/schemas/Contact"
5794
- }
5795
- }
5796
- },
5797
- "additionalProperties": false
5798
- }
5799
- }
5800
- }
5801
- }
5802
- }
5803
- },
5788
+ "/auth/github-oidc": {
5804
5789
  "post": {
5805
- "operationId": "contact/create",
5806
- "summary": "Create Contact",
5790
+ "operationId": "auth/github_oidc",
5791
+ "summary": "Exchange github oidc token",
5807
5792
  "tags": [
5808
- "contacts"
5793
+ "github"
5809
5794
  ],
5810
- "description": "Create Contact",
5795
+ "description": "Exchange github oidc token",
5811
5796
  "requestBody": {
5812
5797
  "required": true,
5813
5798
  "content": {
@@ -5815,1189 +5800,21 @@
5815
5800
  "schema": {
5816
5801
  "type": "object",
5817
5802
  "required": [
5818
- "contact_type"
5803
+ "token"
5819
5804
  ],
5820
5805
  "properties": {
5821
- "contact_type": {
5822
- "enum": [
5823
- "primary",
5824
- "technical",
5825
- "security",
5826
- "emergency",
5827
- "billing"
5828
- ]
5829
- },
5830
- "email": {
5806
+ "token": {
5831
5807
  "type": "string"
5832
5808
  },
5833
- "phone": {
5834
- "type": "string"
5809
+ "app_id": {
5810
+ "type": "string",
5811
+ "description": "Explicitly select wich app to deploy when multiple apps are linked to the same github repository"
5835
5812
  }
5836
- },
5837
- "additionalProperties": false
5813
+ }
5838
5814
  }
5839
5815
  }
5840
5816
  }
5841
5817
  },
5842
- "security": [
5843
- {
5844
- "faable_user": [],
5845
- "faable_cli": [],
5846
- "apikey": [],
5847
- "faable_machine": []
5848
- }
5849
- ],
5850
- "x-internal": true,
5851
- "responses": {
5852
- "201": {
5853
- "description": "Contact",
5854
- "content": {
5855
- "application/json": {
5856
- "schema": {
5857
- "type": "object",
5858
- "required": [
5859
- "id",
5860
- "team",
5861
- "contact_type",
5862
- "metadata",
5863
- "createdAt"
5864
- ],
5865
- "properties": {
5866
- "id": {
5867
- "type": "string",
5868
- "description": "Contact ID"
5869
- },
5870
- "team": {
5871
- "type": "string"
5872
- },
5873
- "contact_type": {
5874
- "enum": [
5875
- "primary",
5876
- "technical",
5877
- "security",
5878
- "emergency",
5879
- "billing"
5880
- ]
5881
- },
5882
- "email": {
5883
- "type": "string"
5884
- },
5885
- "phone": {
5886
- "type": "string"
5887
- },
5888
- "metadata": {
5889
- "type": "object",
5890
- "properties": {},
5891
- "additionalProperties": true,
5892
- "default": {}
5893
- },
5894
- "createdAt": {
5895
- "type": "string",
5896
- "description": "Contact creation date"
5897
- },
5898
- "updatedAt": {
5899
- "type": "string",
5900
- "description": "Contact updated date"
5901
- }
5902
- },
5903
- "description": "Contact",
5904
- "additionalProperties": false
5905
- }
5906
- }
5907
- }
5908
- }
5909
- }
5910
- }
5911
- },
5912
- "/contact/{id}": {
5913
- "get": {
5914
- "operationId": "contact/get",
5915
- "summary": "Get Contact",
5916
- "tags": [
5917
- "contacts"
5918
- ],
5919
- "description": "Get Contact",
5920
- "parameters": [
5921
- {
5922
- "schema": {
5923
- "type": "string"
5924
- },
5925
- "in": "path",
5926
- "name": "id",
5927
- "required": true
5928
- }
5929
- ],
5930
- "security": [
5931
- {
5932
- "faable_user": [],
5933
- "faable_cli": [],
5934
- "apikey": [],
5935
- "faable_machine": []
5936
- }
5937
- ],
5938
- "x-internal": true,
5939
- "responses": {
5940
- "200": {
5941
- "description": "Contact",
5942
- "content": {
5943
- "application/json": {
5944
- "schema": {
5945
- "type": "object",
5946
- "required": [
5947
- "id",
5948
- "team",
5949
- "contact_type",
5950
- "metadata",
5951
- "createdAt"
5952
- ],
5953
- "properties": {
5954
- "id": {
5955
- "type": "string",
5956
- "description": "Contact ID"
5957
- },
5958
- "team": {
5959
- "type": "string"
5960
- },
5961
- "contact_type": {
5962
- "enum": [
5963
- "primary",
5964
- "technical",
5965
- "security",
5966
- "emergency",
5967
- "billing"
5968
- ]
5969
- },
5970
- "email": {
5971
- "type": "string"
5972
- },
5973
- "phone": {
5974
- "type": "string"
5975
- },
5976
- "metadata": {
5977
- "type": "object",
5978
- "properties": {},
5979
- "additionalProperties": true,
5980
- "default": {}
5981
- },
5982
- "createdAt": {
5983
- "type": "string",
5984
- "description": "Contact creation date"
5985
- },
5986
- "updatedAt": {
5987
- "type": "string",
5988
- "description": "Contact updated date"
5989
- }
5990
- },
5991
- "description": "Contact",
5992
- "additionalProperties": false
5993
- }
5994
- }
5995
- }
5996
- }
5997
- }
5998
- },
5999
- "post": {
6000
- "operationId": "contact/update",
6001
- "summary": "Update Contact",
6002
- "tags": [
6003
- "contacts"
6004
- ],
6005
- "description": "Update Contact",
6006
- "requestBody": {
6007
- "required": true,
6008
- "content": {
6009
- "application/json": {
6010
- "schema": {
6011
- "type": "object",
6012
- "properties": {
6013
- "contact_type": {
6014
- "enum": [
6015
- "primary",
6016
- "technical",
6017
- "security",
6018
- "emergency",
6019
- "billing"
6020
- ]
6021
- },
6022
- "email": {
6023
- "type": "string"
6024
- },
6025
- "phone": {
6026
- "type": "string"
6027
- }
6028
- },
6029
- "additionalProperties": false
6030
- }
6031
- }
6032
- }
6033
- },
6034
- "parameters": [
6035
- {
6036
- "schema": {
6037
- "type": "string"
6038
- },
6039
- "in": "path",
6040
- "name": "id",
6041
- "required": true
6042
- }
6043
- ],
6044
- "security": [
6045
- {
6046
- "faable_user": [],
6047
- "faable_cli": [],
6048
- "apikey": [],
6049
- "faable_machine": []
6050
- }
6051
- ],
6052
- "x-internal": true,
6053
- "responses": {
6054
- "200": {
6055
- "description": "Contact",
6056
- "content": {
6057
- "application/json": {
6058
- "schema": {
6059
- "type": "object",
6060
- "required": [
6061
- "id",
6062
- "team",
6063
- "contact_type",
6064
- "metadata",
6065
- "createdAt"
6066
- ],
6067
- "properties": {
6068
- "id": {
6069
- "type": "string",
6070
- "description": "Contact ID"
6071
- },
6072
- "team": {
6073
- "type": "string"
6074
- },
6075
- "contact_type": {
6076
- "enum": [
6077
- "primary",
6078
- "technical",
6079
- "security",
6080
- "emergency",
6081
- "billing"
6082
- ]
6083
- },
6084
- "email": {
6085
- "type": "string"
6086
- },
6087
- "phone": {
6088
- "type": "string"
6089
- },
6090
- "metadata": {
6091
- "type": "object",
6092
- "properties": {},
6093
- "additionalProperties": true,
6094
- "default": {}
6095
- },
6096
- "createdAt": {
6097
- "type": "string",
6098
- "description": "Contact creation date"
6099
- },
6100
- "updatedAt": {
6101
- "type": "string",
6102
- "description": "Contact updated date"
6103
- }
6104
- },
6105
- "description": "Contact",
6106
- "additionalProperties": false
6107
- }
6108
- }
6109
- }
6110
- }
6111
- }
6112
- },
6113
- "delete": {
6114
- "operationId": "contact/delete",
6115
- "summary": "Delete Contact",
6116
- "tags": [
6117
- "contacts"
6118
- ],
6119
- "description": "Delete Contact",
6120
- "parameters": [
6121
- {
6122
- "schema": {
6123
- "type": "string"
6124
- },
6125
- "in": "path",
6126
- "name": "id",
6127
- "required": true
6128
- }
6129
- ],
6130
- "security": [
6131
- {
6132
- "faable_user": [],
6133
- "faable_cli": [],
6134
- "apikey": [],
6135
- "faable_machine": []
6136
- }
6137
- ],
6138
- "x-internal": true,
6139
- "responses": {
6140
- "200": {
6141
- "description": "Contact",
6142
- "content": {
6143
- "application/json": {
6144
- "schema": {
6145
- "type": "object",
6146
- "required": [
6147
- "id",
6148
- "team",
6149
- "contact_type",
6150
- "metadata",
6151
- "createdAt"
6152
- ],
6153
- "properties": {
6154
- "id": {
6155
- "type": "string",
6156
- "description": "Contact ID"
6157
- },
6158
- "team": {
6159
- "type": "string"
6160
- },
6161
- "contact_type": {
6162
- "enum": [
6163
- "primary",
6164
- "technical",
6165
- "security",
6166
- "emergency",
6167
- "billing"
6168
- ]
6169
- },
6170
- "email": {
6171
- "type": "string"
6172
- },
6173
- "phone": {
6174
- "type": "string"
6175
- },
6176
- "metadata": {
6177
- "type": "object",
6178
- "properties": {},
6179
- "additionalProperties": true,
6180
- "default": {}
6181
- },
6182
- "createdAt": {
6183
- "type": "string",
6184
- "description": "Contact creation date"
6185
- },
6186
- "updatedAt": {
6187
- "type": "string",
6188
- "description": "Contact updated date"
6189
- }
6190
- },
6191
- "description": "Contact",
6192
- "additionalProperties": false
6193
- }
6194
- }
6195
- }
6196
- }
6197
- }
6198
- }
6199
- },
6200
- "/apikey": {
6201
- "get": {
6202
- "operationId": "apikey/list",
6203
- "summary": "List Apikeys",
6204
- "tags": [
6205
- "apikeys"
6206
- ],
6207
- "description": "List Apikeys",
6208
- "parameters": [
6209
- {
6210
- "schema": {
6211
- "type": "number",
6212
- "minimum": 1,
6213
- "maximum": 200
6214
- },
6215
- "in": "query",
6216
- "name": "pageSize",
6217
- "required": false,
6218
- "description": "Number of items per page (max 200)"
6219
- },
6220
- {
6221
- "schema": {
6222
- "type": "string"
6223
- },
6224
- "in": "query",
6225
- "name": "cursor",
6226
- "required": false,
6227
- "description": "Cursor for next page"
6228
- },
6229
- {
6230
- "schema": {
6231
- "type": "string"
6232
- },
6233
- "in": "query",
6234
- "name": "next",
6235
- "required": false,
6236
- "description": "Cursor returned by the previous page"
6237
- },
6238
- {
6239
- "schema": {
6240
- "type": "string"
6241
- },
6242
- "in": "query",
6243
- "name": "query",
6244
- "required": false,
6245
- "description": "Filter using a FaableQL query"
6246
- }
6247
- ],
6248
- "security": [
6249
- {
6250
- "faable_user": [],
6251
- "faable_cli": [],
6252
- "apikey": [],
6253
- "faable_machine": []
6254
- }
6255
- ],
6256
- "x-internal": true,
6257
- "responses": {
6258
- "200": {
6259
- "description": "Default Response",
6260
- "content": {
6261
- "application/json": {
6262
- "schema": {
6263
- "type": "object",
6264
- "required": [
6265
- "next",
6266
- "results"
6267
- ],
6268
- "properties": {
6269
- "next": {
6270
- "anyOf": [
6271
- {
6272
- "type": "string"
6273
- },
6274
- {
6275
- "type": "null"
6276
- }
6277
- ]
6278
- },
6279
- "results": {
6280
- "type": "array",
6281
- "items": {
6282
- "$ref": "#/components/schemas/ApiKey"
6283
- }
6284
- }
6285
- },
6286
- "additionalProperties": false
6287
- }
6288
- }
6289
- }
6290
- }
6291
- }
6292
- },
6293
- "post": {
6294
- "operationId": "apikey/create",
6295
- "summary": "Create Apikey",
6296
- "tags": [
6297
- "apikeys"
6298
- ],
6299
- "description": "Create Apikey",
6300
- "requestBody": {
6301
- "required": true,
6302
- "content": {
6303
- "application/json": {
6304
- "schema": {
6305
- "type": "object",
6306
- "properties": {
6307
- "description": {
6308
- "type": "string"
6309
- }
6310
- },
6311
- "additionalProperties": false
6312
- }
6313
- }
6314
- }
6315
- },
6316
- "security": [
6317
- {
6318
- "faable_user": [],
6319
- "faable_cli": [],
6320
- "apikey": [],
6321
- "faable_machine": []
6322
- }
6323
- ],
6324
- "x-internal": true,
6325
- "responses": {
6326
- "201": {
6327
- "description": "ApiKey",
6328
- "content": {
6329
- "application/json": {
6330
- "schema": {
6331
- "type": "object",
6332
- "required": [
6333
- "id",
6334
- "team",
6335
- "apikey",
6336
- "user_id",
6337
- "metadata",
6338
- "createdAt"
6339
- ],
6340
- "properties": {
6341
- "id": {
6342
- "type": "string",
6343
- "description": "ApiKey ID"
6344
- },
6345
- "team": {
6346
- "type": "string"
6347
- },
6348
- "apikey": {
6349
- "type": "string"
6350
- },
6351
- "user_id": {
6352
- "type": "string"
6353
- },
6354
- "description": {
6355
- "type": "string"
6356
- },
6357
- "scopes": {
6358
- "type": "array",
6359
- "items": {
6360
- "type": "string"
6361
- }
6362
- },
6363
- "metadata": {
6364
- "type": "object",
6365
- "properties": {},
6366
- "additionalProperties": true,
6367
- "default": {}
6368
- },
6369
- "createdAt": {
6370
- "type": "string",
6371
- "description": "ApiKey creation date"
6372
- },
6373
- "updatedAt": {
6374
- "type": "string",
6375
- "description": "ApiKey updated date"
6376
- }
6377
- },
6378
- "description": "ApiKey",
6379
- "additionalProperties": false
6380
- }
6381
- }
6382
- }
6383
- }
6384
- }
6385
- }
6386
- },
6387
- "/apikey/{id}": {
6388
- "get": {
6389
- "operationId": "apikey/get",
6390
- "summary": "Get Apikey",
6391
- "tags": [
6392
- "apikeys"
6393
- ],
6394
- "description": "Get Apikey",
6395
- "parameters": [
6396
- {
6397
- "schema": {
6398
- "type": "string"
6399
- },
6400
- "in": "path",
6401
- "name": "id",
6402
- "required": true
6403
- }
6404
- ],
6405
- "security": [
6406
- {
6407
- "faable_user": [],
6408
- "faable_cli": [],
6409
- "apikey": [],
6410
- "faable_machine": []
6411
- }
6412
- ],
6413
- "x-internal": true,
6414
- "responses": {
6415
- "200": {
6416
- "description": "ApiKey",
6417
- "content": {
6418
- "application/json": {
6419
- "schema": {
6420
- "type": "object",
6421
- "required": [
6422
- "id",
6423
- "team",
6424
- "apikey",
6425
- "user_id",
6426
- "metadata",
6427
- "createdAt"
6428
- ],
6429
- "properties": {
6430
- "id": {
6431
- "type": "string",
6432
- "description": "ApiKey ID"
6433
- },
6434
- "team": {
6435
- "type": "string"
6436
- },
6437
- "apikey": {
6438
- "type": "string"
6439
- },
6440
- "user_id": {
6441
- "type": "string"
6442
- },
6443
- "description": {
6444
- "type": "string"
6445
- },
6446
- "scopes": {
6447
- "type": "array",
6448
- "items": {
6449
- "type": "string"
6450
- }
6451
- },
6452
- "metadata": {
6453
- "type": "object",
6454
- "properties": {},
6455
- "additionalProperties": true,
6456
- "default": {}
6457
- },
6458
- "createdAt": {
6459
- "type": "string",
6460
- "description": "ApiKey creation date"
6461
- },
6462
- "updatedAt": {
6463
- "type": "string",
6464
- "description": "ApiKey updated date"
6465
- }
6466
- },
6467
- "description": "ApiKey",
6468
- "additionalProperties": false
6469
- }
6470
- }
6471
- }
6472
- }
6473
- }
6474
- },
6475
- "post": {
6476
- "operationId": "apikey/update",
6477
- "summary": "Update Apikey",
6478
- "tags": [
6479
- "apikeys"
6480
- ],
6481
- "description": "Update Apikey",
6482
- "requestBody": {
6483
- "required": true,
6484
- "content": {
6485
- "application/json": {
6486
- "schema": {
6487
- "type": "object",
6488
- "properties": {
6489
- "description": {
6490
- "type": "string"
6491
- }
6492
- },
6493
- "additionalProperties": false
6494
- }
6495
- }
6496
- }
6497
- },
6498
- "parameters": [
6499
- {
6500
- "schema": {
6501
- "type": "string"
6502
- },
6503
- "in": "path",
6504
- "name": "id",
6505
- "required": true
6506
- }
6507
- ],
6508
- "security": [
6509
- {
6510
- "faable_user": [],
6511
- "faable_cli": [],
6512
- "apikey": [],
6513
- "faable_machine": []
6514
- }
6515
- ],
6516
- "x-internal": true,
6517
- "responses": {
6518
- "200": {
6519
- "description": "ApiKey",
6520
- "content": {
6521
- "application/json": {
6522
- "schema": {
6523
- "type": "object",
6524
- "required": [
6525
- "id",
6526
- "team",
6527
- "apikey",
6528
- "user_id",
6529
- "metadata",
6530
- "createdAt"
6531
- ],
6532
- "properties": {
6533
- "id": {
6534
- "type": "string",
6535
- "description": "ApiKey ID"
6536
- },
6537
- "team": {
6538
- "type": "string"
6539
- },
6540
- "apikey": {
6541
- "type": "string"
6542
- },
6543
- "user_id": {
6544
- "type": "string"
6545
- },
6546
- "description": {
6547
- "type": "string"
6548
- },
6549
- "scopes": {
6550
- "type": "array",
6551
- "items": {
6552
- "type": "string"
6553
- }
6554
- },
6555
- "metadata": {
6556
- "type": "object",
6557
- "properties": {},
6558
- "additionalProperties": true,
6559
- "default": {}
6560
- },
6561
- "createdAt": {
6562
- "type": "string",
6563
- "description": "ApiKey creation date"
6564
- },
6565
- "updatedAt": {
6566
- "type": "string",
6567
- "description": "ApiKey updated date"
6568
- }
6569
- },
6570
- "description": "ApiKey",
6571
- "additionalProperties": false
6572
- }
6573
- }
6574
- }
6575
- }
6576
- }
6577
- },
6578
- "delete": {
6579
- "operationId": "apikey/delete",
6580
- "summary": "Delete Apikey",
6581
- "tags": [
6582
- "apikeys"
6583
- ],
6584
- "description": "Delete Apikey",
6585
- "parameters": [
6586
- {
6587
- "schema": {
6588
- "type": "string"
6589
- },
6590
- "in": "path",
6591
- "name": "id",
6592
- "required": true
6593
- }
6594
- ],
6595
- "security": [
6596
- {
6597
- "faable_user": [],
6598
- "faable_cli": [],
6599
- "apikey": [],
6600
- "faable_machine": []
6601
- }
6602
- ],
6603
- "x-internal": true,
6604
- "responses": {
6605
- "200": {
6606
- "description": "ApiKey",
6607
- "content": {
6608
- "application/json": {
6609
- "schema": {
6610
- "type": "object",
6611
- "required": [
6612
- "id",
6613
- "team",
6614
- "apikey",
6615
- "user_id",
6616
- "metadata",
6617
- "createdAt"
6618
- ],
6619
- "properties": {
6620
- "id": {
6621
- "type": "string",
6622
- "description": "ApiKey ID"
6623
- },
6624
- "team": {
6625
- "type": "string"
6626
- },
6627
- "apikey": {
6628
- "type": "string"
6629
- },
6630
- "user_id": {
6631
- "type": "string"
6632
- },
6633
- "description": {
6634
- "type": "string"
6635
- },
6636
- "scopes": {
6637
- "type": "array",
6638
- "items": {
6639
- "type": "string"
6640
- }
6641
- },
6642
- "metadata": {
6643
- "type": "object",
6644
- "properties": {},
6645
- "additionalProperties": true,
6646
- "default": {}
6647
- },
6648
- "createdAt": {
6649
- "type": "string",
6650
- "description": "ApiKey creation date"
6651
- },
6652
- "updatedAt": {
6653
- "type": "string",
6654
- "description": "ApiKey updated date"
6655
- }
6656
- },
6657
- "description": "ApiKey",
6658
- "additionalProperties": false
6659
- }
6660
- }
6661
- }
6662
- }
6663
- }
6664
- }
6665
- },
6666
- "/project-favorites": {
6667
- "get": {
6668
- "operationId": "project_favorites/get",
6669
- "summary": "Get favorite and recent projects",
6670
- "tags": [
6671
- "project-favorites"
6672
- ],
6673
- "description": "Get the current user's favorite and recent projects",
6674
- "security": [
6675
- {
6676
- "faable_user": [],
6677
- "faable_cli": [],
6678
- "apikey": [],
6679
- "faable_machine": []
6680
- }
6681
- ],
6682
- "x-internal": true,
6683
- "responses": {
6684
- "200": {
6685
- "description": "ProjectFavorites",
6686
- "content": {
6687
- "application/json": {
6688
- "schema": {
6689
- "$ref": "#/components/schemas/ProjectFavorites"
6690
- }
6691
- }
6692
- }
6693
- }
6694
- }
6695
- },
6696
- "put": {
6697
- "operationId": "project_favorites/set",
6698
- "summary": "Set favorite and recent projects",
6699
- "tags": [
6700
- "project-favorites"
6701
- ],
6702
- "description": "Replace the current user's favorite and recent projects with the provided lists",
6703
- "requestBody": {
6704
- "required": true,
6705
- "content": {
6706
- "application/json": {
6707
- "schema": {
6708
- "type": "object",
6709
- "required": [
6710
- "favorites",
6711
- "recents"
6712
- ],
6713
- "properties": {
6714
- "favorites": {
6715
- "type": "array",
6716
- "items": {
6717
- "type": "string"
6718
- }
6719
- },
6720
- "recents": {
6721
- "type": "array",
6722
- "items": {
6723
- "type": "string"
6724
- }
6725
- }
6726
- },
6727
- "additionalProperties": false
6728
- }
6729
- }
6730
- }
6731
- },
6732
- "security": [
6733
- {
6734
- "faable_user": [],
6735
- "faable_cli": [],
6736
- "apikey": [],
6737
- "faable_machine": []
6738
- }
6739
- ],
6740
- "x-internal": true,
6741
- "responses": {
6742
- "200": {
6743
- "description": "ProjectFavorites",
6744
- "content": {
6745
- "application/json": {
6746
- "schema": {
6747
- "$ref": "#/components/schemas/ProjectFavorites"
6748
- }
6749
- }
6750
- }
6751
- }
6752
- }
6753
- }
6754
- },
6755
- "/status/{related_id}": {
6756
- "post": {
6757
- "operationId": "status/update",
6758
- "summary": "Update status resource",
6759
- "tags": [
6760
- "status"
6761
- ],
6762
- "description": "Update status resource",
6763
- "requestBody": {
6764
- "required": true,
6765
- "content": {
6766
- "application/json": {
6767
- "schema": {
6768
- "$ref": "#/components/schemas/StatusUpdate"
6769
- }
6770
- }
6771
- }
6772
- },
6773
- "parameters": [
6774
- {
6775
- "schema": {
6776
- "type": "string"
6777
- },
6778
- "in": "path",
6779
- "name": "related_id",
6780
- "required": true
6781
- }
6782
- ],
6783
- "security": [
6784
- {
6785
- "faable_user": [],
6786
- "faable_cli": [],
6787
- "apikey": [],
6788
- "faable_machine": []
6789
- }
6790
- ],
6791
- "x-internal": true,
6792
- "responses": {
6793
- "200": {
6794
- "description": "Default Response"
6795
- }
6796
- }
6797
- }
6798
- },
6799
- "/github/setup": {
6800
- "get": {
6801
- "operationId": "github/setup",
6802
- "summary": "Handle GitHub App setup and redirect to Faable Auth",
6803
- "tags": [
6804
- "github"
6805
- ],
6806
- "description": "Handle GitHub App setup and redirect to Faable Auth",
6807
- "parameters": [
6808
- {
6809
- "schema": {
6810
- "type": "string"
6811
- },
6812
- "in": "query",
6813
- "name": "installation_id",
6814
- "required": false
6815
- },
6816
- {
6817
- "schema": {
6818
- "type": "string"
6819
- },
6820
- "in": "query",
6821
- "name": "setup_action",
6822
- "required": false
6823
- },
6824
- {
6825
- "schema": {
6826
- "type": "string"
6827
- },
6828
- "in": "query",
6829
- "name": "state",
6830
- "required": false
6831
- }
6832
- ],
6833
- "x-internal": true,
6834
- "responses": {
6835
- "200": {
6836
- "description": "Default Response"
6837
- }
6838
- }
6839
- }
6840
- },
6841
- "/auth/github-oidc": {
6842
- "post": {
6843
- "operationId": "auth/github_oidc",
6844
- "summary": "Exchange github oidc token",
6845
- "tags": [
6846
- "github"
6847
- ],
6848
- "description": "Exchange github oidc token",
6849
- "requestBody": {
6850
- "required": true,
6851
- "content": {
6852
- "application/json": {
6853
- "schema": {
6854
- "type": "object",
6855
- "required": [
6856
- "token"
6857
- ],
6858
- "properties": {
6859
- "token": {
6860
- "type": "string"
6861
- },
6862
- "app_id": {
6863
- "type": "string",
6864
- "description": "Explicitly select wich app to deploy when multiple apps are linked to the same github repository"
6865
- }
6866
- }
6867
- }
6868
- }
6869
- }
6870
- },
6871
- "responses": {
6872
- "200": {
6873
- "description": "Default Response"
6874
- }
6875
- }
6876
- }
6877
- },
6878
- "/github/installations": {
6879
- "get": {
6880
- "operationId": "github/installations",
6881
- "summary": "List GitHub installations (organizations)",
6882
- "tags": [
6883
- "github"
6884
- ],
6885
- "description": "List the GitHub organizations/accounts where the Faable GitHub App is installed for the authenticated user.",
6886
- "security": [
6887
- {
6888
- "faable_user": [],
6889
- "faable_cli": [],
6890
- "apikey": [],
6891
- "faable_machine": []
6892
- }
6893
- ],
6894
- "x-internal": true,
6895
- "responses": {
6896
- "200": {
6897
- "description": "Default Response",
6898
- "content": {
6899
- "application/json": {
6900
- "schema": {
6901
- "type": "object",
6902
- "required": [
6903
- "installations"
6904
- ],
6905
- "properties": {
6906
- "installations": {
6907
- "type": "array",
6908
- "items": {
6909
- "$ref": "#/components/schemas/GithubInstallation"
6910
- }
6911
- }
6912
- }
6913
- }
6914
- }
6915
- }
6916
- }
6917
- }
6918
- }
6919
- },
6920
- "/github/installations/{installation_id}/repositories": {
6921
- "get": {
6922
- "operationId": "github/installation_repositories",
6923
- "summary": "List repositories for an installation",
6924
- "tags": [
6925
- "github"
6926
- ],
6927
- "description": "List the top repositories for a GitHub installation (organization), optionally filtered by a search term.",
6928
- "parameters": [
6929
- {
6930
- "schema": {
6931
- "type": "string"
6932
- },
6933
- "in": "query",
6934
- "name": "q",
6935
- "required": false,
6936
- "description": "Filter repos by name"
6937
- },
6938
- {
6939
- "schema": {
6940
- "type": "integer",
6941
- "minimum": 1,
6942
- "maximum": 100,
6943
- "default": 10
6944
- },
6945
- "in": "query",
6946
- "name": "limit",
6947
- "required": false
6948
- },
6949
- {
6950
- "schema": {
6951
- "type": "string"
6952
- },
6953
- "in": "path",
6954
- "name": "installation_id",
6955
- "required": true
6956
- }
6957
- ],
6958
- "security": [
6959
- {
6960
- "faable_user": [],
6961
- "faable_cli": [],
6962
- "apikey": [],
6963
- "faable_machine": []
6964
- }
6965
- ],
6966
- "x-internal": true,
6967
- "responses": {
6968
- "200": {
6969
- "description": "Default Response",
6970
- "content": {
6971
- "application/json": {
6972
- "schema": {
6973
- "type": "object",
6974
- "required": [
6975
- "repositories"
6976
- ],
6977
- "properties": {
6978
- "repositories": {
6979
- "type": "array",
6980
- "items": {
6981
- "$ref": "#/components/schemas/GithubRepo"
6982
- }
6983
- }
6984
- }
6985
- }
6986
- }
6987
- }
6988
- }
6989
- }
6990
- }
6991
- },
6992
- "/github/webhook": {
6993
- "post": {
6994
- "operationId": "github/webhook",
6995
- "summary": "Handle GitHub webhooks for push and installation events",
6996
- "tags": [
6997
- "github"
6998
- ],
6999
- "description": "Handle GitHub webhooks for push and installation events",
7000
- "x-internal": true,
7001
5818
  "responses": {
7002
5819
  "200": {
7003
5820
  "description": "Default Response"