@jurislm/coolify-plugin 4.0.7 → 4.0.9

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.
@@ -4327,7 +4327,15 @@
4327
4327
  },
4328
4328
  "responses": {
4329
4329
  "200": {
4330
- "description": "Application migration started or completed."
4330
+ "description": "Application migration started or completed.",
4331
+ "content": {
4332
+ "application/json": {
4333
+ "schema": {
4334
+ "type": "object",
4335
+ "additionalProperties": true
4336
+ }
4337
+ }
4338
+ }
4331
4339
  },
4332
4340
  "400": {
4333
4341
  "$ref": "#/components/responses/400"
@@ -4884,7 +4892,22 @@
4884
4892
  ],
4885
4893
  "responses": {
4886
4894
  "200": {
4887
- "description": "Tag removed."
4895
+ "description": "Tag removed.",
4896
+ "content": {
4897
+ "application/json": {
4898
+ "schema": {
4899
+ "type": "object",
4900
+ "required": [
4901
+ "message"
4902
+ ],
4903
+ "properties": {
4904
+ "message": {
4905
+ "type": "string"
4906
+ }
4907
+ }
4908
+ }
4909
+ }
4910
+ }
4888
4911
  },
4889
4912
  "400": {
4890
4913
  "$ref": "#/components/responses/400"
@@ -5224,7 +5247,15 @@
5224
5247
  },
5225
5248
  "responses": {
5226
5249
  "201": {
5227
- "description": "Destination attached."
5250
+ "description": "Destination attached.",
5251
+ "content": {
5252
+ "application/json": {
5253
+ "schema": {
5254
+ "type": "object",
5255
+ "additionalProperties": true
5256
+ }
5257
+ }
5258
+ }
5228
5259
  },
5229
5260
  "400": {
5230
5261
  "$ref": "#/components/responses/400"
@@ -5276,7 +5307,15 @@
5276
5307
  ],
5277
5308
  "responses": {
5278
5309
  "200": {
5279
- "description": "Destination detached."
5310
+ "description": "Destination detached.",
5311
+ "content": {
5312
+ "application/json": {
5313
+ "schema": {
5314
+ "type": "object",
5315
+ "additionalProperties": true
5316
+ }
5317
+ }
5318
+ }
5280
5319
  },
5281
5320
  "401": {
5282
5321
  "$ref": "#/components/responses/401"
@@ -5553,7 +5592,15 @@
5553
5592
  },
5554
5593
  "responses": {
5555
5594
  "200": {
5556
- "description": "Cloud-init script updated."
5595
+ "description": "Cloud-init script updated.",
5596
+ "content": {
5597
+ "application/json": {
5598
+ "schema": {
5599
+ "type": "object",
5600
+ "additionalProperties": true
5601
+ }
5602
+ }
5603
+ }
5557
5604
  },
5558
5605
  "401": {
5559
5606
  "$ref": "#/components/responses/401"
@@ -6755,7 +6802,22 @@
6755
6802
  },
6756
6803
  "responses": {
6757
6804
  "200": {
6758
- "description": "Database backup configuration updated"
6805
+ "description": "Database backup configuration updated",
6806
+ "content": {
6807
+ "application/json": {
6808
+ "schema": {
6809
+ "type": "object",
6810
+ "required": [
6811
+ "message"
6812
+ ],
6813
+ "properties": {
6814
+ "message": {
6815
+ "type": "string"
6816
+ }
6817
+ }
6818
+ }
6819
+ }
6820
+ }
6759
6821
  },
6760
6822
  "400": {
6761
6823
  "$ref": "#/components/responses/400"
@@ -8431,7 +8493,15 @@
8431
8493
  },
8432
8494
  "responses": {
8433
8495
  "200": {
8434
- "description": "Database migration started or completed."
8496
+ "description": "Database migration started or completed.",
8497
+ "content": {
8498
+ "application/json": {
8499
+ "schema": {
8500
+ "type": "object",
8501
+ "additionalProperties": true
8502
+ }
8503
+ }
8504
+ }
8435
8505
  },
8436
8506
  "400": {
8437
8507
  "$ref": "#/components/responses/400"
@@ -9473,7 +9543,22 @@
9473
9543
  ],
9474
9544
  "responses": {
9475
9545
  "200": {
9476
- "description": "Tag removed."
9546
+ "description": "Tag removed.",
9547
+ "content": {
9548
+ "application/json": {
9549
+ "schema": {
9550
+ "type": "object",
9551
+ "required": [
9552
+ "message"
9553
+ ],
9554
+ "properties": {
9555
+ "message": {
9556
+ "type": "string"
9557
+ }
9558
+ }
9559
+ }
9560
+ }
9561
+ }
9477
9562
  },
9478
9563
  "400": {
9479
9564
  "$ref": "#/components/responses/400"
@@ -10252,7 +10337,9 @@
10252
10337
  "in": "query",
10253
10338
  "required": false,
10254
10339
  "schema": {
10255
- "type": "string"
10340
+ "type": "string",
10341
+ "minLength": 1,
10342
+ "pattern": "\\S"
10256
10343
  }
10257
10344
  },
10258
10345
  {
@@ -10261,25 +10348,64 @@
10261
10348
  "required": false,
10262
10349
  "deprecated": true,
10263
10350
  "schema": {
10264
- "type": "string"
10351
+ "type": "string",
10352
+ "minLength": 1,
10353
+ "pattern": "\\S"
10265
10354
  }
10266
10355
  }
10267
10356
  ],
10268
10357
  "responses": {
10269
10358
  "200": {
10270
- "description": "List of DigitalOcean regions."
10359
+ "description": "List of DigitalOcean regions.",
10360
+ "content": {
10361
+ "application/json": {
10362
+ "schema": {
10363
+ "type": "array",
10364
+ "items": {
10365
+ "type": "object",
10366
+ "additionalProperties": true
10367
+ }
10368
+ }
10369
+ }
10370
+ }
10271
10371
  },
10272
10372
  "401": {
10273
10373
  "$ref": "#/components/responses/401"
10274
10374
  },
10375
+ "404": {
10376
+ "$ref": "#/components/responses/404"
10377
+ },
10275
10378
  "422": {
10276
- "description": "Validation failed."
10379
+ "$ref": "#/components/responses/422"
10380
+ },
10381
+ "500": {
10382
+ "description": "The cloud provider request failed.",
10383
+ "content": {
10384
+ "application/json": {
10385
+ "schema": {
10386
+ "type": "object",
10387
+ "required": [
10388
+ "message"
10389
+ ],
10390
+ "properties": {
10391
+ "message": {
10392
+ "type": "string"
10393
+ }
10394
+ },
10395
+ "additionalProperties": true
10396
+ }
10397
+ }
10398
+ }
10277
10399
  }
10278
10400
  },
10279
10401
  "security": [
10280
10402
  {
10281
10403
  "bearerAuth": []
10282
10404
  }
10405
+ ],
10406
+ "x-require-any-query": [
10407
+ "cloud_provider_token_uuid",
10408
+ "cloud_provider_token_id"
10283
10409
  ]
10284
10410
  }
10285
10411
  },
@@ -10296,7 +10422,9 @@
10296
10422
  "in": "query",
10297
10423
  "required": false,
10298
10424
  "schema": {
10299
- "type": "string"
10425
+ "type": "string",
10426
+ "minLength": 1,
10427
+ "pattern": "\\S"
10300
10428
  }
10301
10429
  },
10302
10430
  {
@@ -10305,25 +10433,64 @@
10305
10433
  "required": false,
10306
10434
  "deprecated": true,
10307
10435
  "schema": {
10308
- "type": "string"
10436
+ "type": "string",
10437
+ "minLength": 1,
10438
+ "pattern": "\\S"
10309
10439
  }
10310
10440
  }
10311
10441
  ],
10312
10442
  "responses": {
10313
10443
  "200": {
10314
- "description": "List of DigitalOcean sizes."
10444
+ "description": "List of DigitalOcean sizes.",
10445
+ "content": {
10446
+ "application/json": {
10447
+ "schema": {
10448
+ "type": "array",
10449
+ "items": {
10450
+ "type": "object",
10451
+ "additionalProperties": true
10452
+ }
10453
+ }
10454
+ }
10455
+ }
10315
10456
  },
10316
10457
  "401": {
10317
10458
  "$ref": "#/components/responses/401"
10318
10459
  },
10460
+ "404": {
10461
+ "$ref": "#/components/responses/404"
10462
+ },
10319
10463
  "422": {
10320
- "description": "Validation failed."
10464
+ "$ref": "#/components/responses/422"
10465
+ },
10466
+ "500": {
10467
+ "description": "The cloud provider request failed.",
10468
+ "content": {
10469
+ "application/json": {
10470
+ "schema": {
10471
+ "type": "object",
10472
+ "required": [
10473
+ "message"
10474
+ ],
10475
+ "properties": {
10476
+ "message": {
10477
+ "type": "string"
10478
+ }
10479
+ },
10480
+ "additionalProperties": true
10481
+ }
10482
+ }
10483
+ }
10321
10484
  }
10322
10485
  },
10323
10486
  "security": [
10324
10487
  {
10325
10488
  "bearerAuth": []
10326
10489
  }
10490
+ ],
10491
+ "x-require-any-query": [
10492
+ "cloud_provider_token_uuid",
10493
+ "cloud_provider_token_id"
10327
10494
  ]
10328
10495
  }
10329
10496
  },
@@ -10340,7 +10507,9 @@
10340
10507
  "in": "query",
10341
10508
  "required": false,
10342
10509
  "schema": {
10343
- "type": "string"
10510
+ "type": "string",
10511
+ "minLength": 1,
10512
+ "pattern": "\\S"
10344
10513
  }
10345
10514
  },
10346
10515
  {
@@ -10349,25 +10518,64 @@
10349
10518
  "required": false,
10350
10519
  "deprecated": true,
10351
10520
  "schema": {
10352
- "type": "string"
10521
+ "type": "string",
10522
+ "minLength": 1,
10523
+ "pattern": "\\S"
10353
10524
  }
10354
10525
  }
10355
10526
  ],
10356
10527
  "responses": {
10357
10528
  "200": {
10358
- "description": "List of DigitalOcean images."
10529
+ "description": "List of DigitalOcean images.",
10530
+ "content": {
10531
+ "application/json": {
10532
+ "schema": {
10533
+ "type": "array",
10534
+ "items": {
10535
+ "type": "object",
10536
+ "additionalProperties": true
10537
+ }
10538
+ }
10539
+ }
10540
+ }
10359
10541
  },
10360
10542
  "401": {
10361
10543
  "$ref": "#/components/responses/401"
10362
10544
  },
10545
+ "404": {
10546
+ "$ref": "#/components/responses/404"
10547
+ },
10363
10548
  "422": {
10364
- "description": "Validation failed."
10549
+ "$ref": "#/components/responses/422"
10550
+ },
10551
+ "500": {
10552
+ "description": "The cloud provider request failed.",
10553
+ "content": {
10554
+ "application/json": {
10555
+ "schema": {
10556
+ "type": "object",
10557
+ "required": [
10558
+ "message"
10559
+ ],
10560
+ "properties": {
10561
+ "message": {
10562
+ "type": "string"
10563
+ }
10564
+ },
10565
+ "additionalProperties": true
10566
+ }
10567
+ }
10568
+ }
10365
10569
  }
10366
10570
  },
10367
10571
  "security": [
10368
10572
  {
10369
10573
  "bearerAuth": []
10370
10574
  }
10575
+ ],
10576
+ "x-require-any-query": [
10577
+ "cloud_provider_token_uuid",
10578
+ "cloud_provider_token_id"
10371
10579
  ]
10372
10580
  }
10373
10581
  },
@@ -10384,7 +10592,9 @@
10384
10592
  "in": "query",
10385
10593
  "required": false,
10386
10594
  "schema": {
10387
- "type": "string"
10595
+ "type": "string",
10596
+ "minLength": 1,
10597
+ "pattern": "\\S"
10388
10598
  }
10389
10599
  },
10390
10600
  {
@@ -10393,25 +10603,64 @@
10393
10603
  "required": false,
10394
10604
  "deprecated": true,
10395
10605
  "schema": {
10396
- "type": "string"
10606
+ "type": "string",
10607
+ "minLength": 1,
10608
+ "pattern": "\\S"
10397
10609
  }
10398
10610
  }
10399
10611
  ],
10400
10612
  "responses": {
10401
10613
  "200": {
10402
- "description": "List of DigitalOcean SSH keys."
10614
+ "description": "List of DigitalOcean SSH keys.",
10615
+ "content": {
10616
+ "application/json": {
10617
+ "schema": {
10618
+ "type": "array",
10619
+ "items": {
10620
+ "type": "object",
10621
+ "additionalProperties": true
10622
+ }
10623
+ }
10624
+ }
10625
+ }
10403
10626
  },
10404
10627
  "401": {
10405
10628
  "$ref": "#/components/responses/401"
10406
10629
  },
10630
+ "404": {
10631
+ "$ref": "#/components/responses/404"
10632
+ },
10407
10633
  "422": {
10408
- "description": "Validation failed."
10634
+ "$ref": "#/components/responses/422"
10635
+ },
10636
+ "500": {
10637
+ "description": "The cloud provider request failed.",
10638
+ "content": {
10639
+ "application/json": {
10640
+ "schema": {
10641
+ "type": "object",
10642
+ "required": [
10643
+ "message"
10644
+ ],
10645
+ "properties": {
10646
+ "message": {
10647
+ "type": "string"
10648
+ }
10649
+ },
10650
+ "additionalProperties": true
10651
+ }
10652
+ }
10653
+ }
10409
10654
  }
10410
10655
  },
10411
10656
  "security": [
10412
10657
  {
10413
10658
  "bearerAuth": []
10414
10659
  }
10660
+ ],
10661
+ "x-require-any-query": [
10662
+ "cloud_provider_token_uuid",
10663
+ "cloud_provider_token_id"
10415
10664
  ]
10416
10665
  }
10417
10666
  },
@@ -10424,23 +10673,187 @@
10424
10673
  "operationId": "create-digitalocean-server",
10425
10674
  "responses": {
10426
10675
  "201": {
10427
- "description": "DigitalOcean droplet created and linked to a Coolify server."
10676
+ "description": "DigitalOcean droplet created and linked to a Coolify server.",
10677
+ "content": {
10678
+ "application/json": {
10679
+ "schema": {
10680
+ "type": "object",
10681
+ "required": [
10682
+ "uuid",
10683
+ "digitalocean_droplet_id",
10684
+ "ip"
10685
+ ],
10686
+ "additionalProperties": true,
10687
+ "properties": {
10688
+ "uuid": {
10689
+ "type": "string"
10690
+ },
10691
+ "digitalocean_droplet_id": {
10692
+ "type": "integer"
10693
+ },
10694
+ "ip": {
10695
+ "type": "string",
10696
+ "nullable": true
10697
+ }
10698
+ }
10699
+ }
10700
+ }
10701
+ }
10428
10702
  },
10429
- "401": {
10430
- "$ref": "#/components/responses/401"
10703
+ "400": {
10704
+ "$ref": "#/components/responses/400"
10705
+ },
10706
+ "401": {
10707
+ "$ref": "#/components/responses/401"
10708
+ },
10709
+ "404": {
10710
+ "$ref": "#/components/responses/404"
10431
10711
  },
10432
10712
  "422": {
10433
- "description": "Validation failed."
10713
+ "$ref": "#/components/responses/422"
10434
10714
  },
10435
10715
  "429": {
10436
- "description": "DigitalOcean rate limit exceeded."
10716
+ "description": "The cloud provider rate limit was exceeded.",
10717
+ "headers": {
10718
+ "Retry-After": {
10719
+ "description": "Seconds to wait before retrying, when provided by the upstream provider.",
10720
+ "required": false,
10721
+ "schema": {
10722
+ "type": "string"
10723
+ }
10724
+ }
10725
+ },
10726
+ "content": {
10727
+ "application/json": {
10728
+ "schema": {
10729
+ "type": "object",
10730
+ "required": [
10731
+ "message"
10732
+ ],
10733
+ "properties": {
10734
+ "message": {
10735
+ "type": "string"
10736
+ }
10737
+ },
10738
+ "additionalProperties": true
10739
+ }
10740
+ }
10741
+ }
10742
+ },
10743
+ "500": {
10744
+ "description": "The cloud provider request failed.",
10745
+ "content": {
10746
+ "application/json": {
10747
+ "schema": {
10748
+ "type": "object",
10749
+ "required": [
10750
+ "message"
10751
+ ],
10752
+ "properties": {
10753
+ "message": {
10754
+ "type": "string"
10755
+ }
10756
+ },
10757
+ "additionalProperties": true
10758
+ }
10759
+ }
10760
+ }
10437
10761
  }
10438
10762
  },
10439
10763
  "security": [
10440
10764
  {
10441
10765
  "bearerAuth": []
10442
10766
  }
10443
- ]
10767
+ ],
10768
+ "requestBody": {
10769
+ "required": true,
10770
+ "content": {
10771
+ "application/json": {
10772
+ "schema": {
10773
+ "type": "object",
10774
+ "required": [
10775
+ "region",
10776
+ "size",
10777
+ "image",
10778
+ "private_key_uuid"
10779
+ ],
10780
+ "properties": {
10781
+ "cloud_provider_token_uuid": {
10782
+ "type": "string",
10783
+ "minLength": 1,
10784
+ "pattern": "\\S",
10785
+ "description": "Cloud provider token UUID. Required if cloud_provider_token_id is not provided."
10786
+ },
10787
+ "cloud_provider_token_id": {
10788
+ "type": "string",
10789
+ "minLength": 1,
10790
+ "pattern": "\\S",
10791
+ "deprecated": true,
10792
+ "description": "Deprecated: Use cloud_provider_token_uuid instead. Cloud provider token UUID."
10793
+ },
10794
+ "region": {
10795
+ "type": "string",
10796
+ "minLength": 1
10797
+ },
10798
+ "size": {
10799
+ "type": "string",
10800
+ "minLength": 1
10801
+ },
10802
+ "image": {
10803
+ "anyOf": [
10804
+ {
10805
+ "type": "string",
10806
+ "minLength": 1
10807
+ },
10808
+ {
10809
+ "type": "integer"
10810
+ }
10811
+ ],
10812
+ "description": "DigitalOcean image slug or ID."
10813
+ },
10814
+ "name": {
10815
+ "type": "string",
10816
+ "nullable": true,
10817
+ "maxLength": 253,
10818
+ "pattern": "^$|^[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?(?:\\.[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?)*$"
10819
+ },
10820
+ "private_key_uuid": {
10821
+ "type": "string",
10822
+ "minLength": 1
10823
+ },
10824
+ "enable_ipv6": {
10825
+ "type": "boolean",
10826
+ "nullable": true
10827
+ },
10828
+ "monitoring": {
10829
+ "type": "boolean",
10830
+ "nullable": true
10831
+ },
10832
+ "digitalocean_ssh_key_ids": {
10833
+ "type": "array",
10834
+ "items": {
10835
+ "type": "integer"
10836
+ },
10837
+ "nullable": true
10838
+ },
10839
+ "cloud_init_script": {
10840
+ "type": "string",
10841
+ "nullable": true,
10842
+ "description": "Valid cloud-init YAML or a bash script beginning with #!."
10843
+ },
10844
+ "instant_validate": {
10845
+ "type": "boolean",
10846
+ "nullable": true
10847
+ }
10848
+ },
10849
+ "x-require-any": [
10850
+ "cloud_provider_token_uuid",
10851
+ "cloud_provider_token_id"
10852
+ ]
10853
+ }
10854
+ }
10855
+ }
10856
+ }
10444
10857
  }
10445
10858
  },
10446
10859
  "/github-apps": {
@@ -11419,7 +11832,9 @@
11419
11832
  "description": "Cloud provider token UUID. Required if cloud_provider_token_id is not provided.",
11420
11833
  "required": false,
11421
11834
  "schema": {
11422
- "type": "string"
11835
+ "type": "string",
11836
+ "minLength": 1,
11837
+ "pattern": "\\S"
11423
11838
  }
11424
11839
  },
11425
11840
  {
@@ -11429,7 +11844,9 @@
11429
11844
  "required": false,
11430
11845
  "deprecated": true,
11431
11846
  "schema": {
11432
- "type": "string"
11847
+ "type": "string",
11848
+ "minLength": 1,
11849
+ "pattern": "\\S"
11433
11850
  }
11434
11851
  }
11435
11852
  ],
@@ -11441,30 +11858,8 @@
11441
11858
  "schema": {
11442
11859
  "type": "array",
11443
11860
  "items": {
11444
- "properties": {
11445
- "id": {
11446
- "type": "integer"
11447
- },
11448
- "name": {
11449
- "type": "string"
11450
- },
11451
- "description": {
11452
- "type": "string"
11453
- },
11454
- "country": {
11455
- "type": "string"
11456
- },
11457
- "city": {
11458
- "type": "string"
11459
- },
11460
- "latitude": {
11461
- "type": "number"
11462
- },
11463
- "longitude": {
11464
- "type": "number"
11465
- }
11466
- },
11467
- "type": "object"
11861
+ "type": "object",
11862
+ "additionalProperties": true
11468
11863
  }
11469
11864
  }
11470
11865
  }
@@ -11475,12 +11870,38 @@
11475
11870
  },
11476
11871
  "404": {
11477
11872
  "$ref": "#/components/responses/404"
11873
+ },
11874
+ "422": {
11875
+ "$ref": "#/components/responses/422"
11876
+ },
11877
+ "500": {
11878
+ "description": "The cloud provider request failed.",
11879
+ "content": {
11880
+ "application/json": {
11881
+ "schema": {
11882
+ "type": "object",
11883
+ "required": [
11884
+ "message"
11885
+ ],
11886
+ "properties": {
11887
+ "message": {
11888
+ "type": "string"
11889
+ }
11890
+ },
11891
+ "additionalProperties": true
11892
+ }
11893
+ }
11894
+ }
11478
11895
  }
11479
11896
  },
11480
11897
  "security": [
11481
11898
  {
11482
11899
  "bearerAuth": []
11483
11900
  }
11901
+ ],
11902
+ "x-require-any-query": [
11903
+ "cloud_provider_token_uuid",
11904
+ "cloud_provider_token_id"
11484
11905
  ]
11485
11906
  }
11486
11907
  },
@@ -11499,7 +11920,9 @@
11499
11920
  "description": "Cloud provider token UUID. Required if cloud_provider_token_id is not provided.",
11500
11921
  "required": false,
11501
11922
  "schema": {
11502
- "type": "string"
11923
+ "type": "string",
11924
+ "minLength": 1,
11925
+ "pattern": "\\S"
11503
11926
  }
11504
11927
  },
11505
11928
  {
@@ -11509,7 +11932,9 @@
11509
11932
  "required": false,
11510
11933
  "deprecated": true,
11511
11934
  "schema": {
11512
- "type": "string"
11935
+ "type": "string",
11936
+ "minLength": 1,
11937
+ "pattern": "\\S"
11513
11938
  }
11514
11939
  }
11515
11940
  ],
@@ -11521,61 +11946,8 @@
11521
11946
  "schema": {
11522
11947
  "type": "array",
11523
11948
  "items": {
11524
- "properties": {
11525
- "id": {
11526
- "type": "integer"
11527
- },
11528
- "name": {
11529
- "type": "string"
11530
- },
11531
- "description": {
11532
- "type": "string"
11533
- },
11534
- "cores": {
11535
- "type": "integer"
11536
- },
11537
- "memory": {
11538
- "type": "number"
11539
- },
11540
- "disk": {
11541
- "type": "integer"
11542
- },
11543
- "prices": {
11544
- "type": "array",
11545
- "items": {
11546
- "type": "object",
11547
- "properties": {
11548
- "location": {
11549
- "type": "string",
11550
- "description": "Datacenter location name"
11551
- },
11552
- "price_hourly": {
11553
- "type": "object",
11554
- "properties": {
11555
- "net": {
11556
- "type": "string"
11557
- },
11558
- "gross": {
11559
- "type": "string"
11560
- }
11561
- }
11562
- },
11563
- "price_monthly": {
11564
- "type": "object",
11565
- "properties": {
11566
- "net": {
11567
- "type": "string"
11568
- },
11569
- "gross": {
11570
- "type": "string"
11571
- }
11572
- }
11573
- }
11574
- }
11575
- }
11576
- }
11577
- },
11578
- "type": "object"
11949
+ "type": "object",
11950
+ "additionalProperties": true
11579
11951
  }
11580
11952
  }
11581
11953
  }
@@ -11586,12 +11958,38 @@
11586
11958
  },
11587
11959
  "404": {
11588
11960
  "$ref": "#/components/responses/404"
11961
+ },
11962
+ "422": {
11963
+ "$ref": "#/components/responses/422"
11964
+ },
11965
+ "500": {
11966
+ "description": "The cloud provider request failed.",
11967
+ "content": {
11968
+ "application/json": {
11969
+ "schema": {
11970
+ "type": "object",
11971
+ "required": [
11972
+ "message"
11973
+ ],
11974
+ "properties": {
11975
+ "message": {
11976
+ "type": "string"
11977
+ }
11978
+ },
11979
+ "additionalProperties": true
11980
+ }
11981
+ }
11982
+ }
11589
11983
  }
11590
11984
  },
11591
11985
  "security": [
11592
11986
  {
11593
11987
  "bearerAuth": []
11594
11988
  }
11989
+ ],
11990
+ "x-require-any-query": [
11991
+ "cloud_provider_token_uuid",
11992
+ "cloud_provider_token_id"
11595
11993
  ]
11596
11994
  }
11597
11995
  },
@@ -11610,7 +12008,9 @@
11610
12008
  "description": "Cloud provider token UUID. Required if cloud_provider_token_id is not provided.",
11611
12009
  "required": false,
11612
12010
  "schema": {
11613
- "type": "string"
12011
+ "type": "string",
12012
+ "minLength": 1,
12013
+ "pattern": "\\S"
11614
12014
  }
11615
12015
  },
11616
12016
  {
@@ -11620,7 +12020,9 @@
11620
12020
  "required": false,
11621
12021
  "deprecated": true,
11622
12022
  "schema": {
11623
- "type": "string"
12023
+ "type": "string",
12024
+ "minLength": 1,
12025
+ "pattern": "\\S"
11624
12026
  }
11625
12027
  }
11626
12028
  ],
@@ -11632,30 +12034,8 @@
11632
12034
  "schema": {
11633
12035
  "type": "array",
11634
12036
  "items": {
11635
- "properties": {
11636
- "id": {
11637
- "type": "integer"
11638
- },
11639
- "name": {
11640
- "type": "string"
11641
- },
11642
- "description": {
11643
- "type": "string"
11644
- },
11645
- "type": {
11646
- "type": "string"
11647
- },
11648
- "os_flavor": {
11649
- "type": "string"
11650
- },
11651
- "os_version": {
11652
- "type": "string"
11653
- },
11654
- "architecture": {
11655
- "type": "string"
11656
- }
11657
- },
11658
- "type": "object"
12037
+ "type": "object",
12038
+ "additionalProperties": true
11659
12039
  }
11660
12040
  }
11661
12041
  }
@@ -11666,12 +12046,38 @@
11666
12046
  },
11667
12047
  "404": {
11668
12048
  "$ref": "#/components/responses/404"
12049
+ },
12050
+ "422": {
12051
+ "$ref": "#/components/responses/422"
12052
+ },
12053
+ "500": {
12054
+ "description": "The cloud provider request failed.",
12055
+ "content": {
12056
+ "application/json": {
12057
+ "schema": {
12058
+ "type": "object",
12059
+ "required": [
12060
+ "message"
12061
+ ],
12062
+ "properties": {
12063
+ "message": {
12064
+ "type": "string"
12065
+ }
12066
+ },
12067
+ "additionalProperties": true
12068
+ }
12069
+ }
12070
+ }
11669
12071
  }
11670
12072
  },
11671
12073
  "security": [
11672
12074
  {
11673
12075
  "bearerAuth": []
11674
12076
  }
12077
+ ],
12078
+ "x-require-any-query": [
12079
+ "cloud_provider_token_uuid",
12080
+ "cloud_provider_token_id"
11675
12081
  ]
11676
12082
  }
11677
12083
  },
@@ -11690,7 +12096,9 @@
11690
12096
  "description": "Cloud provider token UUID. Required if cloud_provider_token_id is not provided.",
11691
12097
  "required": false,
11692
12098
  "schema": {
11693
- "type": "string"
12099
+ "type": "string",
12100
+ "minLength": 1,
12101
+ "pattern": "\\S"
11694
12102
  }
11695
12103
  },
11696
12104
  {
@@ -11700,7 +12108,9 @@
11700
12108
  "required": false,
11701
12109
  "deprecated": true,
11702
12110
  "schema": {
11703
- "type": "string"
12111
+ "type": "string",
12112
+ "minLength": 1,
12113
+ "pattern": "\\S"
11704
12114
  }
11705
12115
  }
11706
12116
  ],
@@ -11712,21 +12122,8 @@
11712
12122
  "schema": {
11713
12123
  "type": "array",
11714
12124
  "items": {
11715
- "properties": {
11716
- "id": {
11717
- "type": "integer"
11718
- },
11719
- "name": {
11720
- "type": "string"
11721
- },
11722
- "fingerprint": {
11723
- "type": "string"
11724
- },
11725
- "public_key": {
11726
- "type": "string"
11727
- }
11728
- },
11729
- "type": "object"
12125
+ "type": "object",
12126
+ "additionalProperties": true
11730
12127
  }
11731
12128
  }
11732
12129
  }
@@ -11737,12 +12134,38 @@
11737
12134
  },
11738
12135
  "404": {
11739
12136
  "$ref": "#/components/responses/404"
12137
+ },
12138
+ "422": {
12139
+ "$ref": "#/components/responses/422"
12140
+ },
12141
+ "500": {
12142
+ "description": "The cloud provider request failed.",
12143
+ "content": {
12144
+ "application/json": {
12145
+ "schema": {
12146
+ "type": "object",
12147
+ "required": [
12148
+ "message"
12149
+ ],
12150
+ "properties": {
12151
+ "message": {
12152
+ "type": "string"
12153
+ }
12154
+ },
12155
+ "additionalProperties": true
12156
+ }
12157
+ }
12158
+ }
11740
12159
  }
11741
12160
  },
11742
12161
  "security": [
11743
12162
  {
11744
12163
  "bearerAuth": []
11745
12164
  }
12165
+ ],
12166
+ "x-require-any-query": [
12167
+ "cloud_provider_token_uuid",
12168
+ "cloud_provider_token_id"
11746
12169
  ]
11747
12170
  }
11748
12171
  },
@@ -11761,7 +12184,9 @@
11761
12184
  "description": "Cloud provider token UUID. Required if cloud_provider_token_id is not provided.",
11762
12185
  "required": false,
11763
12186
  "schema": {
11764
- "type": "string"
12187
+ "type": "string",
12188
+ "minLength": 1,
12189
+ "pattern": "\\S"
11765
12190
  }
11766
12191
  },
11767
12192
  {
@@ -11771,7 +12196,9 @@
11771
12196
  "required": false,
11772
12197
  "deprecated": true,
11773
12198
  "schema": {
11774
- "type": "string"
12199
+ "type": "string",
12200
+ "minLength": 1,
12201
+ "pattern": "\\S"
11775
12202
  }
11776
12203
  }
11777
12204
  ],
@@ -11783,15 +12210,8 @@
11783
12210
  "schema": {
11784
12211
  "type": "array",
11785
12212
  "items": {
11786
- "properties": {
11787
- "id": {
11788
- "type": "integer"
11789
- },
11790
- "name": {
11791
- "type": "string"
11792
- }
11793
- },
11794
- "type": "object"
12213
+ "type": "object",
12214
+ "additionalProperties": true
11795
12215
  }
11796
12216
  }
11797
12217
  }
@@ -11802,12 +12222,38 @@
11802
12222
  },
11803
12223
  "404": {
11804
12224
  "$ref": "#/components/responses/404"
12225
+ },
12226
+ "422": {
12227
+ "$ref": "#/components/responses/422"
12228
+ },
12229
+ "500": {
12230
+ "description": "The cloud provider request failed.",
12231
+ "content": {
12232
+ "application/json": {
12233
+ "schema": {
12234
+ "type": "object",
12235
+ "required": [
12236
+ "message"
12237
+ ],
12238
+ "properties": {
12239
+ "message": {
12240
+ "type": "string"
12241
+ }
12242
+ },
12243
+ "additionalProperties": true
12244
+ }
12245
+ }
12246
+ }
11805
12247
  }
11806
12248
  },
11807
12249
  "security": [
11808
12250
  {
11809
12251
  "bearerAuth": []
11810
12252
  }
12253
+ ],
12254
+ "x-require-any-query": [
12255
+ "cloud_provider_token_uuid",
12256
+ "cloud_provider_token_id"
11811
12257
  ]
11812
12258
  }
11813
12259
  },
@@ -11826,7 +12272,9 @@
11826
12272
  "description": "Cloud provider token UUID. Required if cloud_provider_token_id is not provided.",
11827
12273
  "required": false,
11828
12274
  "schema": {
11829
- "type": "string"
12275
+ "type": "string",
12276
+ "minLength": 1,
12277
+ "pattern": "\\S"
11830
12278
  }
11831
12279
  },
11832
12280
  {
@@ -11836,7 +12284,9 @@
11836
12284
  "required": false,
11837
12285
  "deprecated": true,
11838
12286
  "schema": {
11839
- "type": "string"
12287
+ "type": "string",
12288
+ "minLength": 1,
12289
+ "pattern": "\\S"
11840
12290
  }
11841
12291
  }
11842
12292
  ],
@@ -11848,18 +12298,8 @@
11848
12298
  "schema": {
11849
12299
  "type": "array",
11850
12300
  "items": {
11851
- "properties": {
11852
- "id": {
11853
- "type": "integer"
11854
- },
11855
- "name": {
11856
- "type": "string"
11857
- },
11858
- "ip_range": {
11859
- "type": "string"
11860
- }
11861
- },
11862
- "type": "object"
12301
+ "type": "object",
12302
+ "additionalProperties": true
11863
12303
  }
11864
12304
  }
11865
12305
  }
@@ -11870,12 +12310,38 @@
11870
12310
  },
11871
12311
  "404": {
11872
12312
  "$ref": "#/components/responses/404"
12313
+ },
12314
+ "422": {
12315
+ "$ref": "#/components/responses/422"
12316
+ },
12317
+ "500": {
12318
+ "description": "The cloud provider request failed.",
12319
+ "content": {
12320
+ "application/json": {
12321
+ "schema": {
12322
+ "type": "object",
12323
+ "required": [
12324
+ "message"
12325
+ ],
12326
+ "properties": {
12327
+ "message": {
12328
+ "type": "string"
12329
+ }
12330
+ },
12331
+ "additionalProperties": true
12332
+ }
12333
+ }
12334
+ }
11873
12335
  }
11874
12336
  },
11875
12337
  "security": [
11876
12338
  {
11877
12339
  "bearerAuth": []
11878
12340
  }
12341
+ ],
12342
+ "x-require-any-query": [
12343
+ "cloud_provider_token_uuid",
12344
+ "cloud_provider_token_id"
11879
12345
  ]
11880
12346
  }
11881
12347
  },
@@ -11903,23 +12369,29 @@
11903
12369
  "cloud_provider_token_uuid": {
11904
12370
  "type": "string",
11905
12371
  "example": "abc123",
11906
- "description": "Cloud provider token UUID. Required if cloud_provider_token_id is not provided."
12372
+ "description": "Cloud provider token UUID. Required if cloud_provider_token_id is not provided.",
12373
+ "minLength": 1,
12374
+ "pattern": "\\S"
11907
12375
  },
11908
12376
  "cloud_provider_token_id": {
11909
12377
  "type": "string",
11910
12378
  "example": "abc123",
11911
12379
  "description": "Deprecated: Use cloud_provider_token_uuid instead. Cloud provider token UUID.",
11912
- "deprecated": true
12380
+ "deprecated": true,
12381
+ "minLength": 1,
12382
+ "pattern": "\\S"
11913
12383
  },
11914
12384
  "location": {
11915
12385
  "type": "string",
11916
12386
  "example": "nbg1",
11917
- "description": "Hetzner location name"
12387
+ "description": "Hetzner location name",
12388
+ "minLength": 1
11918
12389
  },
11919
12390
  "server_type": {
11920
12391
  "type": "string",
11921
12392
  "example": "cx11",
11922
- "description": "Hetzner server type name"
12393
+ "description": "Hetzner server type name",
12394
+ "minLength": 1
11923
12395
  },
11924
12396
  "image": {
11925
12397
  "type": "integer",
@@ -11929,60 +12401,85 @@
11929
12401
  "name": {
11930
12402
  "type": "string",
11931
12403
  "example": "my-server",
11932
- "description": "Server name (auto-generated if not provided)"
12404
+ "description": "Server name (auto-generated if not provided)",
12405
+ "nullable": true,
12406
+ "maxLength": 253,
12407
+ "pattern": "^$|^[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?(?:\\.[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?)*$"
11933
12408
  },
11934
12409
  "private_key_uuid": {
11935
12410
  "type": "string",
11936
12411
  "example": "xyz789",
11937
- "description": "Private key UUID"
12412
+ "description": "Private key UUID",
12413
+ "minLength": 1
11938
12414
  },
11939
12415
  "enable_ipv4": {
11940
12416
  "type": "boolean",
11941
12417
  "example": true,
11942
- "description": "Enable IPv4 (default: true)"
12418
+ "description": "Enable IPv4 (default: true)",
12419
+ "nullable": true
11943
12420
  },
11944
12421
  "enable_ipv6": {
11945
12422
  "type": "boolean",
11946
12423
  "example": true,
11947
- "description": "Enable IPv6 (default: true)"
12424
+ "description": "Enable IPv6 (default: true)",
12425
+ "nullable": true
11948
12426
  },
11949
12427
  "enable_backups": {
11950
12428
  "type": "boolean",
11951
12429
  "example": false,
11952
- "description": "Enable Hetzner server backups after creation (adds 20% to the monthly server fee)"
12430
+ "description": "Enable Hetzner server backups after creation (adds 20% to the monthly server fee)",
12431
+ "nullable": true
11953
12432
  },
11954
12433
  "hetzner_ssh_key_ids": {
11955
12434
  "type": "array",
11956
12435
  "items": {
11957
12436
  "type": "integer"
11958
12437
  },
11959
- "description": "Additional Hetzner SSH key IDs"
12438
+ "description": "Additional Hetzner SSH key IDs",
12439
+ "nullable": true
11960
12440
  },
11961
12441
  "hetzner_firewall_ids": {
11962
12442
  "type": "array",
11963
12443
  "items": {
11964
12444
  "type": "integer"
11965
12445
  },
11966
- "description": "Existing Hetzner firewall IDs to apply during server creation"
12446
+ "description": "Existing Hetzner firewall IDs to apply during server creation",
12447
+ "nullable": true
11967
12448
  },
11968
12449
  "hetzner_network_ids": {
11969
12450
  "type": "array",
11970
12451
  "items": {
11971
12452
  "type": "integer"
11972
12453
  },
11973
- "description": "Existing Hetzner network IDs to attach during server creation"
12454
+ "description": "Existing Hetzner network IDs to attach during server creation",
12455
+ "nullable": true
11974
12456
  },
11975
12457
  "cloud_init_script": {
11976
12458
  "type": "string",
11977
- "description": "Cloud-init YAML script (optional)"
12459
+ "description": "Valid cloud-init YAML or a bash script beginning with #!.",
12460
+ "nullable": true
11978
12461
  },
11979
12462
  "instant_validate": {
11980
12463
  "type": "boolean",
11981
12464
  "example": false,
11982
- "description": "Validate server immediately after creation"
12465
+ "description": "Validate server immediately after creation",
12466
+ "nullable": true
11983
12467
  }
11984
12468
  },
11985
- "type": "object"
12469
+ "type": "object",
12470
+ "x-require-any": [
12471
+ "cloud_provider_token_uuid",
12472
+ "cloud_provider_token_id"
12473
+ ],
12474
+ "x-invalid-combinations": [
12475
+ {
12476
+ "values": {
12477
+ "enable_ipv4": false,
12478
+ "enable_ipv6": false
12479
+ },
12480
+ "message": "Enable at least one public IP protocol."
12481
+ }
12482
+ ]
11986
12483
  }
11987
12484
  }
11988
12485
  }
@@ -12005,10 +12502,16 @@
12005
12502
  },
12006
12503
  "ip": {
12007
12504
  "type": "string",
12008
- "description": "The server IP address."
12505
+ "description": "The server IP address.",
12506
+ "nullable": true
12009
12507
  }
12010
12508
  },
12011
- "type": "object"
12509
+ "type": "object",
12510
+ "required": [
12511
+ "uuid",
12512
+ "hetzner_server_id",
12513
+ "ip"
12514
+ ]
12012
12515
  }
12013
12516
  }
12014
12517
  }
@@ -12026,7 +12529,51 @@
12026
12529
  "$ref": "#/components/responses/422"
12027
12530
  },
12028
12531
  "429": {
12029
- "$ref": "#/components/responses/429"
12532
+ "description": "The cloud provider rate limit was exceeded.",
12533
+ "headers": {
12534
+ "Retry-After": {
12535
+ "description": "Seconds to wait before retrying, when provided by the upstream provider.",
12536
+ "required": false,
12537
+ "schema": {
12538
+ "type": "string"
12539
+ }
12540
+ }
12541
+ },
12542
+ "content": {
12543
+ "application/json": {
12544
+ "schema": {
12545
+ "type": "object",
12546
+ "required": [
12547
+ "message"
12548
+ ],
12549
+ "properties": {
12550
+ "message": {
12551
+ "type": "string"
12552
+ }
12553
+ },
12554
+ "additionalProperties": true
12555
+ }
12556
+ }
12557
+ }
12558
+ },
12559
+ "500": {
12560
+ "description": "The cloud provider request failed.",
12561
+ "content": {
12562
+ "application/json": {
12563
+ "schema": {
12564
+ "type": "object",
12565
+ "required": [
12566
+ "message"
12567
+ ],
12568
+ "properties": {
12569
+ "message": {
12570
+ "type": "string"
12571
+ }
12572
+ },
12573
+ "additionalProperties": true
12574
+ }
12575
+ }
12576
+ }
12030
12577
  }
12031
12578
  },
12032
12579
  "security": [
@@ -12078,7 +12625,15 @@
12078
12625
  "operationId": "update-current-team-email-notifications",
12079
12626
  "responses": {
12080
12627
  "200": {
12081
- "description": "Updated email notification settings."
12628
+ "description": "Updated email notification settings.",
12629
+ "content": {
12630
+ "application/json": {
12631
+ "schema": {
12632
+ "type": "object",
12633
+ "additionalProperties": true
12634
+ }
12635
+ }
12636
+ }
12082
12637
  },
12083
12638
  "400": {
12084
12639
  "$ref": "#/components/responses/400"
@@ -12142,7 +12697,15 @@
12142
12697
  "operationId": "update-current-team-discord-notifications",
12143
12698
  "responses": {
12144
12699
  "200": {
12145
- "description": "Updated Discord notification settings."
12700
+ "description": "Updated Discord notification settings.",
12701
+ "content": {
12702
+ "application/json": {
12703
+ "schema": {
12704
+ "type": "object",
12705
+ "additionalProperties": true
12706
+ }
12707
+ }
12708
+ }
12146
12709
  },
12147
12710
  "400": {
12148
12711
  "$ref": "#/components/responses/400"
@@ -12206,7 +12769,15 @@
12206
12769
  "operationId": "update-current-team-slack-notifications",
12207
12770
  "responses": {
12208
12771
  "200": {
12209
- "description": "Updated Slack notification settings."
12772
+ "description": "Updated Slack notification settings.",
12773
+ "content": {
12774
+ "application/json": {
12775
+ "schema": {
12776
+ "type": "object",
12777
+ "additionalProperties": true
12778
+ }
12779
+ }
12780
+ }
12210
12781
  },
12211
12782
  "400": {
12212
12783
  "$ref": "#/components/responses/400"
@@ -12270,7 +12841,15 @@
12270
12841
  "operationId": "update-current-team-telegram-notifications",
12271
12842
  "responses": {
12272
12843
  "200": {
12273
- "description": "Updated Telegram notification settings."
12844
+ "description": "Updated Telegram notification settings.",
12845
+ "content": {
12846
+ "application/json": {
12847
+ "schema": {
12848
+ "type": "object",
12849
+ "additionalProperties": true
12850
+ }
12851
+ }
12852
+ }
12274
12853
  },
12275
12854
  "400": {
12276
12855
  "$ref": "#/components/responses/400"
@@ -12334,7 +12913,15 @@
12334
12913
  "operationId": "update-current-team-pushover-notifications",
12335
12914
  "responses": {
12336
12915
  "200": {
12337
- "description": "Updated Pushover notification settings."
12916
+ "description": "Updated Pushover notification settings.",
12917
+ "content": {
12918
+ "application/json": {
12919
+ "schema": {
12920
+ "type": "object",
12921
+ "additionalProperties": true
12922
+ }
12923
+ }
12924
+ }
12338
12925
  },
12339
12926
  "400": {
12340
12927
  "$ref": "#/components/responses/400"
@@ -12398,7 +12985,15 @@
12398
12985
  "operationId": "update-current-team-webhook-notifications",
12399
12986
  "responses": {
12400
12987
  "200": {
12401
- "description": "Updated webhook notification settings."
12988
+ "description": "Updated webhook notification settings.",
12989
+ "content": {
12990
+ "application/json": {
12991
+ "schema": {
12992
+ "type": "object",
12993
+ "additionalProperties": true
12994
+ }
12995
+ }
12996
+ }
12402
12997
  },
12403
12998
  "400": {
12404
12999
  "$ref": "#/components/responses/400"
@@ -14519,7 +15114,15 @@
14519
15114
  ],
14520
15115
  "responses": {
14521
15116
  "200": {
14522
- "description": "Scheduled task execution queued."
15117
+ "description": "Scheduled task execution queued.",
15118
+ "content": {
15119
+ "application/json": {
15120
+ "schema": {
15121
+ "type": "object",
15122
+ "additionalProperties": true
15123
+ }
15124
+ }
15125
+ }
14523
15126
  },
14524
15127
  "401": {
14525
15128
  "$ref": "#/components/responses/401"
@@ -14565,7 +15168,15 @@
14565
15168
  ],
14566
15169
  "responses": {
14567
15170
  "200": {
14568
- "description": "Scheduled task execution queued."
15171
+ "description": "Scheduled task execution queued.",
15172
+ "content": {
15173
+ "application/json": {
15174
+ "schema": {
15175
+ "type": "object",
15176
+ "additionalProperties": true
15177
+ }
15178
+ }
15179
+ }
14569
15180
  },
14570
15181
  "401": {
14571
15182
  "$ref": "#/components/responses/401"
@@ -14954,7 +15565,15 @@
14954
15565
  },
14955
15566
  "responses": {
14956
15567
  "200": {
14957
- "description": "Updated Cloudflare Tunnel settings."
15568
+ "description": "Updated Cloudflare Tunnel settings.",
15569
+ "content": {
15570
+ "application/json": {
15571
+ "schema": {
15572
+ "type": "object",
15573
+ "additionalProperties": true
15574
+ }
15575
+ }
15576
+ }
14958
15577
  },
14959
15578
  "400": {
14960
15579
  "$ref": "#/components/responses/400"
@@ -14997,7 +15616,15 @@
14997
15616
  ],
14998
15617
  "responses": {
14999
15618
  "200": {
15000
- "description": "Cloudflare Tunnel enabled."
15619
+ "description": "Cloudflare Tunnel enabled.",
15620
+ "content": {
15621
+ "application/json": {
15622
+ "schema": {
15623
+ "type": "object",
15624
+ "additionalProperties": true
15625
+ }
15626
+ }
15627
+ }
15001
15628
  },
15002
15629
  "400": {
15003
15630
  "$ref": "#/components/responses/400"
@@ -15040,7 +15667,15 @@
15040
15667
  ],
15041
15668
  "responses": {
15042
15669
  "200": {
15043
- "description": "Cloudflare Tunnel disabled."
15670
+ "description": "Cloudflare Tunnel disabled.",
15671
+ "content": {
15672
+ "application/json": {
15673
+ "schema": {
15674
+ "type": "object",
15675
+ "additionalProperties": true
15676
+ }
15677
+ }
15678
+ }
15044
15679
  },
15045
15680
  "400": {
15046
15681
  "$ref": "#/components/responses/400"
@@ -15536,10 +16171,18 @@
15536
16171
  },
15537
16172
  "responses": {
15538
16173
  "200": {
15539
- "description": "Updated log drain settings."
15540
- },
15541
- "400": {
15542
- "$ref": "#/components/responses/400"
16174
+ "description": "Updated log drain settings.",
16175
+ "content": {
16176
+ "application/json": {
16177
+ "schema": {
16178
+ "type": "object",
16179
+ "additionalProperties": true
16180
+ }
16181
+ }
16182
+ }
16183
+ },
16184
+ "400": {
16185
+ "$ref": "#/components/responses/400"
15543
16186
  },
15544
16187
  "401": {
15545
16188
  "$ref": "#/components/responses/401"
@@ -16058,7 +16701,15 @@
16058
16701
  },
16059
16702
  "responses": {
16060
16703
  "200": {
16061
- "description": "Updated Sentinel settings."
16704
+ "description": "Updated Sentinel settings.",
16705
+ "content": {
16706
+ "application/json": {
16707
+ "schema": {
16708
+ "type": "object",
16709
+ "additionalProperties": true
16710
+ }
16711
+ }
16712
+ }
16062
16713
  },
16063
16714
  "400": {
16064
16715
  "$ref": "#/components/responses/400"
@@ -16085,8 +16736,8 @@
16085
16736
  "tags": [
16086
16737
  "Servers"
16087
16738
  ],
16088
- "summary": "Migrate server to another Coolify instance",
16089
- "description": "One-shot handoff: export this server, import+claim on the target instance (using the provided token), then disable automations here. Requires read:sensitive and write.",
16739
+ "summary": "Migrate server to another Coolify instance (APP_ENV=local only in v4.3.23)",
16740
+ "description": "One-shot handoff: export this server, import+claim on the target instance (using the provided token), then disable automations here. Requires read:sensitive and write. This controller returns 404 unless APP_ENV is local.",
16090
16741
  "operationId": "migrate-server-between-instances",
16091
16742
  "parameters": [
16092
16743
  {
@@ -16140,7 +16791,18 @@
16140
16791
  },
16141
16792
  "responses": {
16142
16793
  "200": {
16143
- "description": "Migrated"
16794
+ "description": "Migrated",
16795
+ "content": {
16796
+ "application/json": {
16797
+ "schema": {
16798
+ "type": "object",
16799
+ "additionalProperties": true
16800
+ }
16801
+ }
16802
+ }
16803
+ },
16804
+ "401": {
16805
+ "$ref": "#/components/responses/401"
16144
16806
  },
16145
16807
  "403": {
16146
16808
  "description": "Missing sensitive permission"
@@ -16164,8 +16826,8 @@
16164
16826
  "tags": [
16165
16827
  "Servers"
16166
16828
  ],
16167
- "summary": "Export server transfer bundle",
16168
- "description": "Export a server and all resources hosted on it as a versioned transfer bundle for moving between Coolify instances. Requires read:sensitive.",
16829
+ "summary": "Export server transfer bundle (APP_ENV=local only in v4.3.23)",
16830
+ "description": "Export a server and all resources hosted on it as a versioned transfer bundle for moving between Coolify instances. Requires read:sensitive. This controller returns 404 unless APP_ENV is local.",
16169
16831
  "operationId": "export-server-transfer-bundle",
16170
16832
  "parameters": [
16171
16833
  {
@@ -16197,7 +16859,15 @@
16197
16859
  ],
16198
16860
  "responses": {
16199
16861
  "200": {
16200
- "description": "Transfer bundle"
16862
+ "description": "Transfer bundle",
16863
+ "content": {
16864
+ "application/json": {
16865
+ "schema": {
16866
+ "type": "object",
16867
+ "additionalProperties": true
16868
+ }
16869
+ }
16870
+ }
16201
16871
  },
16202
16872
  "401": {
16203
16873
  "$ref": "#/components/responses/401"
@@ -16207,6 +16877,9 @@
16207
16877
  },
16208
16878
  "404": {
16209
16879
  "$ref": "#/components/responses/404"
16880
+ },
16881
+ "422": {
16882
+ "$ref": "#/components/responses/422"
16210
16883
  }
16211
16884
  },
16212
16885
  "security": [
@@ -16221,8 +16894,8 @@
16221
16894
  "tags": [
16222
16895
  "Servers"
16223
16896
  ],
16224
- "summary": "Import server transfer bundle",
16225
- "description": "Import a server transfer bundle into this Coolify instance (adopt mode by default).",
16897
+ "summary": "Import server transfer bundle (APP_ENV=local only in v4.3.23)",
16898
+ "description": "Import a server transfer bundle into this Coolify instance (adopt mode by default). This controller returns 404 unless APP_ENV is local.",
16226
16899
  "operationId": "import-server-transfer-bundle",
16227
16900
  "requestBody": {
16228
16901
  "required": true,
@@ -16276,14 +16949,33 @@
16276
16949
  },
16277
16950
  "responses": {
16278
16951
  "200": {
16279
- "description": "Dry-run result"
16952
+ "description": "Dry-run result",
16953
+ "content": {
16954
+ "application/json": {
16955
+ "schema": {
16956
+ "type": "object",
16957
+ "additionalProperties": true
16958
+ }
16959
+ }
16960
+ }
16280
16961
  },
16281
16962
  "201": {
16282
- "description": "Imported"
16963
+ "description": "Imported",
16964
+ "content": {
16965
+ "application/json": {
16966
+ "schema": {
16967
+ "type": "object",
16968
+ "additionalProperties": true
16969
+ }
16970
+ }
16971
+ }
16283
16972
  },
16284
16973
  "401": {
16285
16974
  "$ref": "#/components/responses/401"
16286
16975
  },
16976
+ "404": {
16977
+ "$ref": "#/components/responses/404"
16978
+ },
16287
16979
  "422": {
16288
16980
  "description": "Validation failed"
16289
16981
  }
@@ -16300,8 +16992,8 @@
16300
16992
  "tags": [
16301
16993
  "Servers"
16302
16994
  ],
16303
- "summary": "Claim imported server",
16304
- "description": "Claim a managed host for this instance: write ownership file and rebind Sentinel.",
16995
+ "summary": "Claim imported server (APP_ENV=local only in v4.3.23)",
16996
+ "description": "Claim a managed host for this instance: write ownership file and rebind Sentinel. This controller returns 404 unless APP_ENV is local.",
16305
16997
  "operationId": "claim-server",
16306
16998
  "parameters": [
16307
16999
  {
@@ -16334,10 +17026,24 @@
16334
17026
  },
16335
17027
  "responses": {
16336
17028
  "200": {
16337
- "description": "Claim result"
17029
+ "description": "Claim result",
17030
+ "content": {
17031
+ "application/json": {
17032
+ "schema": {
17033
+ "type": "object",
17034
+ "additionalProperties": true
17035
+ }
17036
+ }
17037
+ }
17038
+ },
17039
+ "401": {
17040
+ "$ref": "#/components/responses/401"
16338
17041
  },
16339
17042
  "404": {
16340
17043
  "$ref": "#/components/responses/404"
17044
+ },
17045
+ "422": {
17046
+ "$ref": "#/components/responses/422"
16341
17047
  }
16342
17048
  },
16343
17049
  "security": [
@@ -16352,8 +17058,8 @@
16352
17058
  "tags": [
16353
17059
  "Servers"
16354
17060
  ],
16355
- "summary": "Mark server transferred",
16356
- "description": "Source-instance step: disable automations after a successful export/import handoff.",
17061
+ "summary": "Mark server transferred (APP_ENV=local only in v4.3.23)",
17062
+ "description": "Source-instance step: disable automations after a successful export/import handoff. This controller returns 404 unless APP_ENV is local.",
16357
17063
  "operationId": "complete-server-transfer",
16358
17064
  "parameters": [
16359
17065
  {
@@ -16390,10 +17096,24 @@
16390
17096
  },
16391
17097
  "responses": {
16392
17098
  "200": {
16393
- "description": "Marked transferred"
17099
+ "description": "Marked transferred",
17100
+ "content": {
17101
+ "application/json": {
17102
+ "schema": {
17103
+ "type": "object",
17104
+ "additionalProperties": true
17105
+ }
17106
+ }
17107
+ }
17108
+ },
17109
+ "401": {
17110
+ "$ref": "#/components/responses/401"
16394
17111
  },
16395
17112
  "404": {
16396
17113
  "$ref": "#/components/responses/404"
17114
+ },
17115
+ "422": {
17116
+ "$ref": "#/components/responses/422"
16397
17117
  }
16398
17118
  },
16399
17119
  "security": [
@@ -16408,8 +17128,8 @@
16408
17128
  "tags": [
16409
17129
  "Servers"
16410
17130
  ],
16411
- "summary": "Write transfer bundle to server mailbox",
16412
- "description": "Write an export bundle to /data/coolify/exports on the managed host for air-gapped import.",
17131
+ "summary": "Write transfer bundle to server mailbox (APP_ENV=local only in v4.3.23)",
17132
+ "description": "Write an export bundle to /data/coolify/exports on the managed host for air-gapped import. This controller returns 404 unless APP_ENV is local.",
16413
17133
  "operationId": "export-server-transfer-mailbox",
16414
17134
  "parameters": [
16415
17135
  {
@@ -16440,13 +17160,27 @@
16440
17160
  },
16441
17161
  "responses": {
16442
17162
  "200": {
16443
- "description": "Mailbox write result"
17163
+ "description": "Mailbox write result",
17164
+ "content": {
17165
+ "application/json": {
17166
+ "schema": {
17167
+ "type": "object",
17168
+ "additionalProperties": true
17169
+ }
17170
+ }
17171
+ }
17172
+ },
17173
+ "401": {
17174
+ "$ref": "#/components/responses/401"
16444
17175
  },
16445
17176
  "403": {
16446
17177
  "description": "Missing sensitive permission"
16447
17178
  },
16448
17179
  "404": {
16449
17180
  "$ref": "#/components/responses/404"
17181
+ },
17182
+ "422": {
17183
+ "$ref": "#/components/responses/422"
16450
17184
  }
16451
17185
  },
16452
17186
  "security": [
@@ -16954,6 +17688,80 @@
16954
17688
  ]
16955
17689
  }
16956
17690
  },
17691
+ "/servers/{uuid}/validate": {
17692
+ "post": {
17693
+ "tags": [
17694
+ "Servers"
17695
+ ],
17696
+ "summary": "Validate",
17697
+ "description": "Validate server by UUID.",
17698
+ "operationId": "validate-server-by-uuid",
17699
+ "parameters": [
17700
+ {
17701
+ "name": "uuid",
17702
+ "in": "path",
17703
+ "description": "Server UUID",
17704
+ "required": true,
17705
+ "schema": {
17706
+ "type": "string"
17707
+ }
17708
+ }
17709
+ ],
17710
+ "requestBody": {
17711
+ "required": false,
17712
+ "content": {
17713
+ "application/json": {
17714
+ "schema": {
17715
+ "properties": {
17716
+ "install": {
17717
+ "description": "Install missing prerequisites and Docker. This can restart the Docker daemon.",
17718
+ "type": "boolean",
17719
+ "default": false
17720
+ }
17721
+ },
17722
+ "type": "object"
17723
+ }
17724
+ }
17725
+ }
17726
+ },
17727
+ "responses": {
17728
+ "201": {
17729
+ "description": "Server validation started.",
17730
+ "content": {
17731
+ "application/json": {
17732
+ "schema": {
17733
+ "properties": {
17734
+ "message": {
17735
+ "type": "string",
17736
+ "example": "Validation started."
17737
+ }
17738
+ },
17739
+ "type": "object"
17740
+ }
17741
+ }
17742
+ }
17743
+ },
17744
+ "400": {
17745
+ "$ref": "#/components/responses/400"
17746
+ },
17747
+ "401": {
17748
+ "$ref": "#/components/responses/401"
17749
+ },
17750
+ "404": {
17751
+ "$ref": "#/components/responses/404"
17752
+ },
17753
+ "422": {
17754
+ "$ref": "#/components/responses/422"
17755
+ }
17756
+ },
17757
+ "security": [
17758
+ {
17759
+ "bearerAuth": []
17760
+ }
17761
+ ],
17762
+ "x-destructive-hint": true
17763
+ }
17764
+ },
16957
17765
  "/services/{uuid}/applications": {
16958
17766
  "get": {
16959
17767
  "tags": [
@@ -19187,7 +19995,15 @@
19187
19995
  },
19188
19996
  "responses": {
19189
19997
  "200": {
19190
- "description": "Service migration started or completed."
19998
+ "description": "Service migration started or completed.",
19999
+ "content": {
20000
+ "application/json": {
20001
+ "schema": {
20002
+ "type": "object",
20003
+ "additionalProperties": true
20004
+ }
20005
+ }
20006
+ }
19191
20007
  },
19192
20008
  "400": {
19193
20009
  "$ref": "#/components/responses/400"
@@ -19862,7 +20678,22 @@
19862
20678
  ],
19863
20679
  "responses": {
19864
20680
  "200": {
19865
- "description": "Tag removed."
20681
+ "description": "Tag removed.",
20682
+ "content": {
20683
+ "application/json": {
20684
+ "schema": {
20685
+ "type": "object",
20686
+ "required": [
20687
+ "message"
20688
+ ],
20689
+ "properties": {
20690
+ "message": {
20691
+ "type": "string"
20692
+ }
20693
+ }
20694
+ }
20695
+ }
20696
+ }
19866
20697
  },
19867
20698
  "400": {
19868
20699
  "$ref": "#/components/responses/400"
@@ -21670,7 +22501,15 @@
21670
22501
  ],
21671
22502
  "responses": {
21672
22503
  "200": {
21673
- "description": "Backup schedule and archives deleted."
22504
+ "description": "Backup schedule and archives deleted.",
22505
+ "content": {
22506
+ "application/json": {
22507
+ "schema": {
22508
+ "type": "object",
22509
+ "additionalProperties": true
22510
+ }
22511
+ }
22512
+ }
21674
22513
  },
21675
22514
  "401": {
21676
22515
  "$ref": "#/components/responses/401"
@@ -21800,7 +22639,15 @@
21800
22639
  ],
21801
22640
  "responses": {
21802
22641
  "200": {
21803
- "description": "Backup schedule and archives deleted."
22642
+ "description": "Backup schedule and archives deleted.",
22643
+ "content": {
22644
+ "application/json": {
22645
+ "schema": {
22646
+ "type": "object",
22647
+ "additionalProperties": true
22648
+ }
22649
+ }
22650
+ }
21804
22651
  },
21805
22652
  "401": {
21806
22653
  "$ref": "#/components/responses/401"
@@ -21930,7 +22777,15 @@
21930
22777
  ],
21931
22778
  "responses": {
21932
22779
  "200": {
21933
- "description": "Backup schedule and archives deleted."
22780
+ "description": "Backup schedule and archives deleted.",
22781
+ "content": {
22782
+ "application/json": {
22783
+ "schema": {
22784
+ "type": "object",
22785
+ "additionalProperties": true
22786
+ }
22787
+ }
22788
+ }
21934
22789
  },
21935
22790
  "401": {
21936
22791
  "$ref": "#/components/responses/401"
@@ -21980,7 +22835,15 @@
21980
22835
  ],
21981
22836
  "responses": {
21982
22837
  "200": {
21983
- "description": "Storage backup queued."
22838
+ "description": "Storage backup queued.",
22839
+ "content": {
22840
+ "application/json": {
22841
+ "schema": {
22842
+ "type": "object",
22843
+ "additionalProperties": true
22844
+ }
22845
+ }
22846
+ }
21984
22847
  },
21985
22848
  "401": {
21986
22849
  "$ref": "#/components/responses/401"
@@ -22024,7 +22887,15 @@
22024
22887
  ],
22025
22888
  "responses": {
22026
22889
  "200": {
22027
- "description": "Storage backup queued."
22890
+ "description": "Storage backup queued.",
22891
+ "content": {
22892
+ "application/json": {
22893
+ "schema": {
22894
+ "type": "object",
22895
+ "additionalProperties": true
22896
+ }
22897
+ }
22898
+ }
22028
22899
  },
22029
22900
  "401": {
22030
22901
  "$ref": "#/components/responses/401"
@@ -22068,7 +22939,15 @@
22068
22939
  ],
22069
22940
  "responses": {
22070
22941
  "200": {
22071
- "description": "Storage backup queued."
22942
+ "description": "Storage backup queued.",
22943
+ "content": {
22944
+ "application/json": {
22945
+ "schema": {
22946
+ "type": "object",
22947
+ "additionalProperties": true
22948
+ }
22949
+ }
22950
+ }
22072
22951
  },
22073
22952
  "401": {
22074
22953
  "$ref": "#/components/responses/401"
@@ -22094,20 +22973,82 @@
22094
22973
  "operationId": "get-vultr-regions",
22095
22974
  "responses": {
22096
22975
  "200": {
22097
- "description": "List of Vultr regions."
22976
+ "description": "List of Vultr regions.",
22977
+ "content": {
22978
+ "application/json": {
22979
+ "schema": {
22980
+ "type": "array",
22981
+ "items": {
22982
+ "type": "object",
22983
+ "additionalProperties": true
22984
+ }
22985
+ }
22986
+ }
22987
+ }
22098
22988
  },
22099
22989
  "401": {
22100
22990
  "$ref": "#/components/responses/401"
22101
22991
  },
22102
22992
  "404": {
22103
22993
  "$ref": "#/components/responses/404"
22104
- }
22105
- },
22106
- "security": [
22107
- {
22108
- "bearerAuth": []
22109
- }
22110
- ]
22994
+ },
22995
+ "422": {
22996
+ "$ref": "#/components/responses/422"
22997
+ },
22998
+ "500": {
22999
+ "description": "The cloud provider request failed.",
23000
+ "content": {
23001
+ "application/json": {
23002
+ "schema": {
23003
+ "type": "object",
23004
+ "required": [
23005
+ "message"
23006
+ ],
23007
+ "properties": {
23008
+ "message": {
23009
+ "type": "string"
23010
+ }
23011
+ },
23012
+ "additionalProperties": true
23013
+ }
23014
+ }
23015
+ }
23016
+ }
23017
+ },
23018
+ "security": [
23019
+ {
23020
+ "bearerAuth": []
23021
+ }
23022
+ ],
23023
+ "x-require-any-query": [
23024
+ "cloud_provider_token_uuid",
23025
+ "cloud_provider_token_id"
23026
+ ],
23027
+ "parameters": [
23028
+ {
23029
+ "name": "cloud_provider_token_uuid",
23030
+ "in": "query",
23031
+ "required": false,
23032
+ "description": "Cloud provider token UUID. Required if cloud_provider_token_id is not provided.",
23033
+ "schema": {
23034
+ "type": "string",
23035
+ "minLength": 1,
23036
+ "pattern": "\\S"
23037
+ }
23038
+ },
23039
+ {
23040
+ "name": "cloud_provider_token_id",
23041
+ "in": "query",
23042
+ "required": false,
23043
+ "deprecated": true,
23044
+ "description": "Deprecated: Use cloud_provider_token_uuid instead. Cloud provider token UUID.",
23045
+ "schema": {
23046
+ "type": "string",
23047
+ "minLength": 1,
23048
+ "pattern": "\\S"
23049
+ }
23050
+ }
23051
+ ]
22111
23052
  }
22112
23053
  },
22113
23054
  "/vultr/plans": {
@@ -22120,19 +23061,81 @@
22120
23061
  "operationId": "get-vultr-plans",
22121
23062
  "responses": {
22122
23063
  "200": {
22123
- "description": "List of Vultr plans."
23064
+ "description": "List of Vultr plans.",
23065
+ "content": {
23066
+ "application/json": {
23067
+ "schema": {
23068
+ "type": "array",
23069
+ "items": {
23070
+ "type": "object",
23071
+ "additionalProperties": true
23072
+ }
23073
+ }
23074
+ }
23075
+ }
22124
23076
  },
22125
23077
  "401": {
22126
23078
  "$ref": "#/components/responses/401"
22127
23079
  },
22128
23080
  "404": {
22129
23081
  "$ref": "#/components/responses/404"
23082
+ },
23083
+ "422": {
23084
+ "$ref": "#/components/responses/422"
23085
+ },
23086
+ "500": {
23087
+ "description": "The cloud provider request failed.",
23088
+ "content": {
23089
+ "application/json": {
23090
+ "schema": {
23091
+ "type": "object",
23092
+ "required": [
23093
+ "message"
23094
+ ],
23095
+ "properties": {
23096
+ "message": {
23097
+ "type": "string"
23098
+ }
23099
+ },
23100
+ "additionalProperties": true
23101
+ }
23102
+ }
23103
+ }
22130
23104
  }
22131
23105
  },
22132
23106
  "security": [
22133
23107
  {
22134
23108
  "bearerAuth": []
22135
23109
  }
23110
+ ],
23111
+ "x-require-any-query": [
23112
+ "cloud_provider_token_uuid",
23113
+ "cloud_provider_token_id"
23114
+ ],
23115
+ "parameters": [
23116
+ {
23117
+ "name": "cloud_provider_token_uuid",
23118
+ "in": "query",
23119
+ "required": false,
23120
+ "description": "Cloud provider token UUID. Required if cloud_provider_token_id is not provided.",
23121
+ "schema": {
23122
+ "type": "string",
23123
+ "minLength": 1,
23124
+ "pattern": "\\S"
23125
+ }
23126
+ },
23127
+ {
23128
+ "name": "cloud_provider_token_id",
23129
+ "in": "query",
23130
+ "required": false,
23131
+ "deprecated": true,
23132
+ "description": "Deprecated: Use cloud_provider_token_uuid instead. Cloud provider token UUID.",
23133
+ "schema": {
23134
+ "type": "string",
23135
+ "minLength": 1,
23136
+ "pattern": "\\S"
23137
+ }
23138
+ }
22136
23139
  ]
22137
23140
  }
22138
23141
  },
@@ -22146,19 +23149,81 @@
22146
23149
  "operationId": "get-vultr-operating-systems",
22147
23150
  "responses": {
22148
23151
  "200": {
22149
- "description": "List of Vultr operating systems."
23152
+ "description": "List of Vultr operating systems.",
23153
+ "content": {
23154
+ "application/json": {
23155
+ "schema": {
23156
+ "type": "array",
23157
+ "items": {
23158
+ "type": "object",
23159
+ "additionalProperties": true
23160
+ }
23161
+ }
23162
+ }
23163
+ }
22150
23164
  },
22151
23165
  "401": {
22152
23166
  "$ref": "#/components/responses/401"
22153
23167
  },
22154
23168
  "404": {
22155
23169
  "$ref": "#/components/responses/404"
23170
+ },
23171
+ "422": {
23172
+ "$ref": "#/components/responses/422"
23173
+ },
23174
+ "500": {
23175
+ "description": "The cloud provider request failed.",
23176
+ "content": {
23177
+ "application/json": {
23178
+ "schema": {
23179
+ "type": "object",
23180
+ "required": [
23181
+ "message"
23182
+ ],
23183
+ "properties": {
23184
+ "message": {
23185
+ "type": "string"
23186
+ }
23187
+ },
23188
+ "additionalProperties": true
23189
+ }
23190
+ }
23191
+ }
22156
23192
  }
22157
23193
  },
22158
23194
  "security": [
22159
23195
  {
22160
23196
  "bearerAuth": []
22161
23197
  }
23198
+ ],
23199
+ "x-require-any-query": [
23200
+ "cloud_provider_token_uuid",
23201
+ "cloud_provider_token_id"
23202
+ ],
23203
+ "parameters": [
23204
+ {
23205
+ "name": "cloud_provider_token_uuid",
23206
+ "in": "query",
23207
+ "required": false,
23208
+ "description": "Cloud provider token UUID. Required if cloud_provider_token_id is not provided.",
23209
+ "schema": {
23210
+ "type": "string",
23211
+ "minLength": 1,
23212
+ "pattern": "\\S"
23213
+ }
23214
+ },
23215
+ {
23216
+ "name": "cloud_provider_token_id",
23217
+ "in": "query",
23218
+ "required": false,
23219
+ "deprecated": true,
23220
+ "description": "Deprecated: Use cloud_provider_token_uuid instead. Cloud provider token UUID.",
23221
+ "schema": {
23222
+ "type": "string",
23223
+ "minLength": 1,
23224
+ "pattern": "\\S"
23225
+ }
23226
+ }
22162
23227
  ]
22163
23228
  }
22164
23229
  },
@@ -22172,19 +23237,81 @@
22172
23237
  "operationId": "get-vultr-ssh-keys",
22173
23238
  "responses": {
22174
23239
  "200": {
22175
- "description": "List of Vultr SSH keys."
23240
+ "description": "List of Vultr SSH keys.",
23241
+ "content": {
23242
+ "application/json": {
23243
+ "schema": {
23244
+ "type": "array",
23245
+ "items": {
23246
+ "type": "object",
23247
+ "additionalProperties": true
23248
+ }
23249
+ }
23250
+ }
23251
+ }
22176
23252
  },
22177
23253
  "401": {
22178
23254
  "$ref": "#/components/responses/401"
22179
23255
  },
22180
23256
  "404": {
22181
23257
  "$ref": "#/components/responses/404"
23258
+ },
23259
+ "422": {
23260
+ "$ref": "#/components/responses/422"
23261
+ },
23262
+ "500": {
23263
+ "description": "The cloud provider request failed.",
23264
+ "content": {
23265
+ "application/json": {
23266
+ "schema": {
23267
+ "type": "object",
23268
+ "required": [
23269
+ "message"
23270
+ ],
23271
+ "properties": {
23272
+ "message": {
23273
+ "type": "string"
23274
+ }
23275
+ },
23276
+ "additionalProperties": true
23277
+ }
23278
+ }
23279
+ }
22182
23280
  }
22183
23281
  },
22184
23282
  "security": [
22185
23283
  {
22186
23284
  "bearerAuth": []
22187
23285
  }
23286
+ ],
23287
+ "x-require-any-query": [
23288
+ "cloud_provider_token_uuid",
23289
+ "cloud_provider_token_id"
23290
+ ],
23291
+ "parameters": [
23292
+ {
23293
+ "name": "cloud_provider_token_uuid",
23294
+ "in": "query",
23295
+ "required": false,
23296
+ "description": "Cloud provider token UUID. Required if cloud_provider_token_id is not provided.",
23297
+ "schema": {
23298
+ "type": "string",
23299
+ "minLength": 1,
23300
+ "pattern": "\\S"
23301
+ }
23302
+ },
23303
+ {
23304
+ "name": "cloud_provider_token_id",
23305
+ "in": "query",
23306
+ "required": false,
23307
+ "deprecated": true,
23308
+ "description": "Deprecated: Use cloud_provider_token_uuid instead. Cloud provider token UUID.",
23309
+ "schema": {
23310
+ "type": "string",
23311
+ "minLength": 1,
23312
+ "pattern": "\\S"
23313
+ }
23314
+ }
22188
23315
  ]
22189
23316
  }
22190
23317
  },
@@ -22198,23 +23325,187 @@
22198
23325
  "operationId": "create-vultr-server",
22199
23326
  "responses": {
22200
23327
  "201": {
22201
- "description": "Vultr server created."
23328
+ "description": "Vultr server created.",
23329
+ "content": {
23330
+ "application/json": {
23331
+ "schema": {
23332
+ "type": "object",
23333
+ "required": [
23334
+ "uuid",
23335
+ "vultr_instance_id",
23336
+ "ip"
23337
+ ],
23338
+ "additionalProperties": true,
23339
+ "properties": {
23340
+ "uuid": {
23341
+ "type": "string"
23342
+ },
23343
+ "vultr_instance_id": {
23344
+ "type": "string"
23345
+ },
23346
+ "ip": {
23347
+ "type": "string",
23348
+ "nullable": true
23349
+ }
23350
+ }
23351
+ }
23352
+ }
23353
+ }
23354
+ },
23355
+ "400": {
23356
+ "$ref": "#/components/responses/400"
22202
23357
  },
22203
23358
  "401": {
22204
23359
  "$ref": "#/components/responses/401"
22205
23360
  },
23361
+ "404": {
23362
+ "$ref": "#/components/responses/404"
23363
+ },
22206
23364
  "422": {
22207
- "description": "Validation failed."
23365
+ "$ref": "#/components/responses/422"
22208
23366
  },
22209
23367
  "429": {
22210
- "description": "Vultr API rate limit exceeded."
23368
+ "description": "The cloud provider rate limit was exceeded.",
23369
+ "headers": {
23370
+ "Retry-After": {
23371
+ "description": "Seconds to wait before retrying, when provided by the upstream provider.",
23372
+ "required": false,
23373
+ "schema": {
23374
+ "type": "string"
23375
+ }
23376
+ }
23377
+ },
23378
+ "content": {
23379
+ "application/json": {
23380
+ "schema": {
23381
+ "type": "object",
23382
+ "required": [
23383
+ "message"
23384
+ ],
23385
+ "properties": {
23386
+ "message": {
23387
+ "type": "string"
23388
+ }
23389
+ },
23390
+ "additionalProperties": true
23391
+ }
23392
+ }
23393
+ }
23394
+ },
23395
+ "500": {
23396
+ "description": "The cloud provider request failed.",
23397
+ "content": {
23398
+ "application/json": {
23399
+ "schema": {
23400
+ "type": "object",
23401
+ "required": [
23402
+ "message"
23403
+ ],
23404
+ "properties": {
23405
+ "message": {
23406
+ "type": "string"
23407
+ }
23408
+ },
23409
+ "additionalProperties": true
23410
+ }
23411
+ }
23412
+ }
22211
23413
  }
22212
23414
  },
22213
23415
  "security": [
22214
23416
  {
22215
23417
  "bearerAuth": []
22216
23418
  }
22217
- ]
23419
+ ],
23420
+ "requestBody": {
23421
+ "required": true,
23422
+ "content": {
23423
+ "application/json": {
23424
+ "schema": {
23425
+ "type": "object",
23426
+ "required": [
23427
+ "region",
23428
+ "plan",
23429
+ "os_id",
23430
+ "private_key_uuid"
23431
+ ],
23432
+ "properties": {
23433
+ "cloud_provider_token_uuid": {
23434
+ "type": "string",
23435
+ "minLength": 1,
23436
+ "pattern": "\\S",
23437
+ "description": "Cloud provider token UUID. Required if cloud_provider_token_id is not provided."
23438
+ },
23439
+ "cloud_provider_token_id": {
23440
+ "type": "string",
23441
+ "minLength": 1,
23442
+ "pattern": "\\S",
23443
+ "deprecated": true,
23444
+ "description": "Deprecated: Use cloud_provider_token_uuid instead. Cloud provider token UUID."
23445
+ },
23446
+ "region": {
23447
+ "type": "string",
23448
+ "minLength": 1
23449
+ },
23450
+ "plan": {
23451
+ "type": "string",
23452
+ "minLength": 1
23453
+ },
23454
+ "os_id": {
23455
+ "type": "integer"
23456
+ },
23457
+ "name": {
23458
+ "type": "string",
23459
+ "nullable": true,
23460
+ "maxLength": 253,
23461
+ "pattern": "^$|^[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?(?:\\.[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?)*$"
23462
+ },
23463
+ "private_key_uuid": {
23464
+ "type": "string",
23465
+ "minLength": 1
23466
+ },
23467
+ "enable_ipv6": {
23468
+ "type": "boolean",
23469
+ "nullable": true
23470
+ },
23471
+ "disable_public_ipv4": {
23472
+ "type": "boolean",
23473
+ "nullable": true
23474
+ },
23475
+ "vultr_ssh_key_ids": {
23476
+ "type": "array",
23477
+ "items": {
23478
+ "type": "string"
23479
+ },
23480
+ "nullable": true
23481
+ },
23482
+ "cloud_init_script": {
23483
+ "type": "string",
23484
+ "nullable": true,
23485
+ "description": "Valid cloud-init YAML or a bash script beginning with #!."
23486
+ },
23487
+ "instant_validate": {
23488
+ "type": "boolean",
23489
+ "nullable": true
23490
+ }
23491
+ },
23492
+ "x-require-any": [
23493
+ "cloud_provider_token_uuid",
23494
+ "cloud_provider_token_id"
23495
+ ],
23496
+ "x-invalid-combinations": [
23497
+ {
23498
+ "values": {
23499
+ "disable_public_ipv4": true,
23500
+ "enable_ipv6": false
23501
+ },
23502
+ "message": "Enable public IPv4 or IPv6."
23503
+ }
23504
+ ]
23505
+ }
23506
+ }
23507
+ }
23508
+ }
22218
23509
  }
22219
23510
  }
22220
23511
  },