@scalix-world/sdk 1.4.0 → 1.4.1

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.
@@ -152,6 +152,54 @@ export type BudgetUsage = {
152
152
  storage_gb: number;
153
153
  compute_hours: number;
154
154
  };
155
+ /**
156
+ * A source build to start.
157
+ */
158
+ export type BuildCreateRequest = {
159
+ /**
160
+ * Where the source comes from: `git` or `tarball`.
161
+ */
162
+ source_type: string;
163
+ /**
164
+ * Repository or archive URL. Must be reachable from the builder.
165
+ */
166
+ source_url?: string | null;
167
+ /**
168
+ * Branch, tag or commit to build. Defaults to `main`. This is the branch
169
+ * field: `git_ref` is not recognised and is ignored if sent.
170
+ */
171
+ source_ref?: string | null;
172
+ /**
173
+ * Credential for a private repository, used as the password in the clone
174
+ * URL. A fine-grained token with read-only Contents access on that one
175
+ * repository is enough. It is held in memory for the build only: never
176
+ * stored, never written to build logs or error messages. Omit this when
177
+ * the Scalix GitHub App is installed for the project - a short-lived
178
+ * installation token is then minted per build and injected automatically.
179
+ */
180
+ auth_token?: string | null;
181
+ /**
182
+ * Path to the Dockerfile within the source tree. Auto-detected if omitted.
183
+ */
184
+ dockerfile_path?: string | null;
185
+ /**
186
+ * Tag for the resulting image. Auto-generated if omitted.
187
+ */
188
+ image_tag?: string | null;
189
+ /**
190
+ * Build-time ARGs passed to the builder. Project environment variables are
191
+ * merged in as well; values sent here win. These are stored on the build
192
+ * record and readable back from `GET /v1/build/{id}`, so treat them as
193
+ * non-secret: use them for things like a public API base URL, not tokens.
194
+ */
195
+ build_args?: {
196
+ [key: string]: unknown;
197
+ } | null;
198
+ /**
199
+ * Build timeout in seconds. Default 600, maximum 3600.
200
+ */
201
+ timeout_seconds?: number | null;
202
+ };
155
203
  /**
156
204
  * Request body for `POST /v1/env/bulk` — import many variables at once.
157
205
  */
@@ -612,6 +660,104 @@ export type DomainJson = {
612
660
  * Run service this domain serves (absent = the project's API surface).
613
661
  */
614
662
  run_service?: string | null;
663
+ /**
664
+ * Gateway IP for apex A-record setup (absent if not configured).
665
+ */
666
+ edge_ip?: string | null;
667
+ };
668
+ /**
669
+ * The domain to add to the org's sending domains.
670
+ */
671
+ export type EmailAddDomainRequest = {
672
+ /**
673
+ * Domain to add.
674
+ */
675
+ domain: string;
676
+ };
677
+ /**
678
+ * A sending domain owned by the org, with the DNS records it needs.
679
+ */
680
+ export type EmailDomain = {
681
+ /**
682
+ * Domain id.
683
+ */
684
+ id: string;
685
+ /**
686
+ * The domain itself.
687
+ */
688
+ domain: string;
689
+ /**
690
+ * Verification state of the DNS records.
691
+ */
692
+ status: string;
693
+ /**
694
+ * DNS records that must exist for the domain to verify.
695
+ */
696
+ dns_records?: {
697
+ [key: string]: unknown;
698
+ } | null;
699
+ /**
700
+ * Whether this org may actually send through the domain. Verification
701
+ * alone is not sufficient: bring-your-own delivery is a separate switch.
702
+ */
703
+ delivery_enabled?: boolean | null;
704
+ };
705
+ /**
706
+ * A one-off email with its body supplied inline.
707
+ */
708
+ export type EmailSendRawRequest = {
709
+ /**
710
+ * Recipient address.
711
+ */
712
+ to: string;
713
+ /**
714
+ * Subject line.
715
+ */
716
+ subject: string;
717
+ /**
718
+ * HTML body.
719
+ */
720
+ html: string;
721
+ };
722
+ /**
723
+ * The accepted-for-delivery receipt returned by both send endpoints.
724
+ */
725
+ export type EmailSendResponse = {
726
+ /**
727
+ * Message id, used to correlate later delivery events.
728
+ */
729
+ id: string;
730
+ /**
731
+ * Delivery state at the time of the response.
732
+ */
733
+ status: string;
734
+ /**
735
+ * Recipient the message was accepted for.
736
+ */
737
+ to: string;
738
+ /**
739
+ * Template used, echoed back on the templated send.
740
+ */
741
+ template?: string | null;
742
+ };
743
+ /**
744
+ * A templated transactional email to send.
745
+ */
746
+ export type EmailSendTxRequest = {
747
+ /**
748
+ * Name of the template to render.
749
+ */
750
+ template: string;
751
+ /**
752
+ * Recipient address.
753
+ */
754
+ to: string;
755
+ /**
756
+ * Variables substituted into the template.
757
+ */
758
+ data?: {
759
+ [key: string]: unknown;
760
+ } | null;
615
761
  };
616
762
  /**
617
763
  * A project environment variable (secret values are masked).
@@ -870,6 +1016,13 @@ export type MeLimits = {
870
1016
  plan: string;
871
1017
  rate_limit_rps: number;
872
1018
  api_keys_max: number;
1019
+ /**
1020
+ * OAuth-granted connected apps (ChatGPT, Claude, an IDE …). A separate pool
1021
+ * from `api_keys_max` — see `plan_limits::connected_apps_for_plan`. Reported
1022
+ * so the console reads the limit from the server that enforces it, rather
1023
+ * than from a client-side constant that can drift out of step.
1024
+ */
1025
+ connected_apps_max: number;
873
1026
  };
874
1027
  /**
875
1028
  * Effective permissions for the caller's token.
@@ -905,6 +1058,115 @@ export type RecordConsentRequest = {
905
1058
  granted: boolean;
906
1059
  };
907
1060
  export type RequestStatus = 'pending' | 'in_progress' | 'completed' | 'rejected';
1061
+ /**
1062
+ * A Scalix Run service to deploy.
1063
+ */
1064
+ export type RunServiceDeployRequest = {
1065
+ /**
1066
+ * Service name, unique within the project.
1067
+ */
1068
+ name: string;
1069
+ /**
1070
+ * Container image to run.
1071
+ */
1072
+ image_ref: string;
1073
+ /**
1074
+ * Port the app listens on inside the instance. Default 8080.
1075
+ */
1076
+ port?: number | null;
1077
+ /**
1078
+ * Environment variables.
1079
+ */
1080
+ env?: {
1081
+ [key: string]: unknown;
1082
+ } | null;
1083
+ /**
1084
+ * Memory per instance in MB. Default 256, minimum 128.
1085
+ */
1086
+ memory_mb?: number | null;
1087
+ /**
1088
+ * vCPUs per instance. Default 1.
1089
+ */
1090
+ vcpus?: number | null;
1091
+ /**
1092
+ * Minimum instances kept warm. Default 0 (scale to zero).
1093
+ */
1094
+ min_instances?: number | null;
1095
+ /**
1096
+ * Maximum instances. Default 10.
1097
+ */
1098
+ max_instances?: number | null;
1099
+ /**
1100
+ * Concurrent requests per instance before scaling out. Default 50.
1101
+ */
1102
+ target_concurrency?: number | null;
1103
+ /**
1104
+ * Idle seconds before scaling in. Default 300.
1105
+ */
1106
+ scale_down_delay_secs?: number | null;
1107
+ /**
1108
+ * HTTP path for the readiness probe. Omit for the default check that the
1109
+ * app is listening on `port`.
1110
+ */
1111
+ health_check_path?: string | null;
1112
+ /**
1113
+ * Per-request timeout in seconds. Default 300.
1114
+ */
1115
+ timeout_secs?: number | null;
1116
+ /**
1117
+ * `instant`, `health_gated` (default), or `canary`.
1118
+ */
1119
+ rollout_strategy?: string | null;
1120
+ /**
1121
+ * Persistent volumes. Attaching one pins the service to a single instance
1122
+ * and the `instant` strategy.
1123
+ */
1124
+ volumes?: {
1125
+ [key: string]: unknown;
1126
+ } | null;
1127
+ };
1128
+ /**
1129
+ * Changes to apply to an existing Scalix Run service.
1130
+ *
1131
+ * Every field is optional; omitted fields are left as-is. Changing
1132
+ * `image_ref` is what triggers a new revision and a rollout.
1133
+ */
1134
+ export type RunServiceUpdateRequest = {
1135
+ image_ref?: string | null;
1136
+ env?: {
1137
+ [key: string]: unknown;
1138
+ } | null;
1139
+ memory_mb?: number | null;
1140
+ vcpus?: number | null;
1141
+ min_instances?: number | null;
1142
+ max_instances?: number | null;
1143
+ target_concurrency?: number | null;
1144
+ scale_down_delay_secs?: number | null;
1145
+ health_check_path?: string | null;
1146
+ timeout_secs?: number | null;
1147
+ /**
1148
+ * Strategy for the rollout this update triggers.
1149
+ */
1150
+ rollout_strategy?: string | null;
1151
+ /**
1152
+ * Canary stages, e.g. `[{"pct":10,"soak_secs":60}]`.
1153
+ */
1154
+ rollout_stages?: {
1155
+ [key: string]: unknown;
1156
+ } | null;
1157
+ /**
1158
+ * Instances that must pass the probe before the revision is promoted.
1159
+ */
1160
+ ready_threshold?: number | null;
1161
+ /**
1162
+ * Seconds the new revision has to pass its readiness gate before it is
1163
+ * rolled back to the previous revision. Raise it for apps with a slow cold
1164
+ * start (model loading, large runtimes) - a revision that boots fine but
1165
+ * warms up slowly is otherwise reverted, leaving the older revision
1166
+ * serving with its own resource settings.
1167
+ */
1168
+ gate_deadline_secs?: number | null;
1169
+ };
908
1170
  /**
909
1171
  * Request body for running a command inside a sandbox.
910
1172
  */
@@ -3890,12 +4152,7 @@ export type ListBuildsResponses = {
3890
4152
  200: unknown;
3891
4153
  };
3892
4154
  export type CreateBuildData = {
3893
- /**
3894
- * Create-build request
3895
- */
3896
- body: {
3897
- [key: string]: unknown;
3898
- };
4155
+ body: BuildCreateRequest;
3899
4156
  path?: never;
3900
4157
  query?: never;
3901
4158
  url: '/v1/build';
@@ -3917,6 +4174,53 @@ export type CreateBuildResponses = {
3917
4174
  */
3918
4175
  200: unknown;
3919
4176
  };
4177
+ export type UploadBuildData = {
4178
+ /**
4179
+ * Gzipped tarball of the source tree
4180
+ */
4181
+ body: string;
4182
+ path?: never;
4183
+ query?: {
4184
+ /**
4185
+ * Tag for the resulting image. Auto-generated if omitted.
4186
+ */
4187
+ image_tag?: string;
4188
+ /**
4189
+ * Path to the Dockerfile within the uploaded tree. Auto-detected if omitted.
4190
+ */
4191
+ dockerfile_path?: string;
4192
+ /**
4193
+ * Build-time ARGs as a url-encoded JSON object, e.g. {"VITE_API_URL":"https://api.example.com"}
4194
+ */
4195
+ build_args?: string;
4196
+ /**
4197
+ * Build timeout in seconds. Default 600, maximum 3600.
4198
+ */
4199
+ timeout_seconds?: number;
4200
+ };
4201
+ url: '/v1/build/upload';
4202
+ };
4203
+ export type UploadBuildErrors = {
4204
+ /**
4205
+ * Body is empty, not a gzipped tarball, too large, or build_args is malformed
4206
+ */
4207
+ 400: ErrorResponse;
4208
+ /**
4209
+ * Missing or invalid API key
4210
+ */
4211
+ 401: ErrorResponse;
4212
+ /**
4213
+ * Internal error
4214
+ */
4215
+ 500: ErrorResponse;
4216
+ };
4217
+ export type UploadBuildError = UploadBuildErrors[keyof UploadBuildErrors];
4218
+ export type UploadBuildResponses = {
4219
+ /**
4220
+ * Build started
4221
+ */
4222
+ 201: unknown;
4223
+ };
3920
4224
  export type GetBuildData = {
3921
4225
  body?: never;
3922
4226
  path: {
@@ -5391,107 +5695,642 @@ export type VerifyDomainResponses = {
5391
5695
  200: VerifyDomainResponse;
5392
5696
  };
5393
5697
  export type VerifyDomainResponse2 = VerifyDomainResponses[keyof VerifyDomainResponses];
5394
- export type ListEnvVarsData = {
5698
+ export type GetEmailCampaignAnalyticsData = {
5395
5699
  body?: never;
5396
- path?: never;
5700
+ path: {
5701
+ /**
5702
+ * Template to report on
5703
+ */
5704
+ template_name: string;
5705
+ };
5397
5706
  query?: never;
5398
- url: '/v1/env';
5707
+ url: '/v1/email/analytics/campaign/{template_name}';
5399
5708
  };
5400
- export type ListEnvVarsErrors = {
5709
+ export type GetEmailCampaignAnalyticsErrors = {
5401
5710
  /**
5402
- * Missing or invalid credentials
5711
+ * Missing or invalid API key
5403
5712
  */
5404
5713
  401: ErrorResponse;
5714
+ /**
5715
+ * Missing email:read scope
5716
+ */
5717
+ 403: ErrorResponse;
5718
+ /**
5719
+ * Template not found
5720
+ */
5721
+ 404: ErrorResponse;
5405
5722
  /**
5406
5723
  * Internal error
5407
5724
  */
5408
5725
  500: ErrorResponse;
5409
5726
  };
5410
- export type ListEnvVarsError = ListEnvVarsErrors[keyof ListEnvVarsErrors];
5411
- export type ListEnvVarsResponses = {
5727
+ export type GetEmailCampaignAnalyticsError = GetEmailCampaignAnalyticsErrors[keyof GetEmailCampaignAnalyticsErrors];
5728
+ export type GetEmailCampaignAnalyticsResponses = {
5412
5729
  /**
5413
- * All project environment variables
5730
+ * Campaign analytics
5414
5731
  */
5415
- 200: ListEnvResponse;
5732
+ 200: unknown;
5416
5733
  };
5417
- export type ListEnvVarsResponse = ListEnvVarsResponses[keyof ListEnvVarsResponses];
5418
- export type SetEnvVarData = {
5419
- body: SetEnvBody;
5734
+ export type GetEmailAnalyticsSummaryData = {
5735
+ body?: never;
5420
5736
  path?: never;
5421
5737
  query?: never;
5422
- url: '/v1/env';
5738
+ url: '/v1/email/analytics/summary';
5423
5739
  };
5424
- export type SetEnvVarErrors = {
5740
+ export type GetEmailAnalyticsSummaryErrors = {
5425
5741
  /**
5426
- * Missing or invalid credentials
5742
+ * Missing or invalid API key
5427
5743
  */
5428
5744
  401: ErrorResponse;
5745
+ /**
5746
+ * Missing email:read scope
5747
+ */
5748
+ 403: ErrorResponse;
5429
5749
  /**
5430
5750
  * Internal error
5431
5751
  */
5432
5752
  500: ErrorResponse;
5433
5753
  };
5434
- export type SetEnvVarError = SetEnvVarErrors[keyof SetEnvVarErrors];
5435
- export type SetEnvVarResponses = {
5754
+ export type GetEmailAnalyticsSummaryError = GetEmailAnalyticsSummaryErrors[keyof GetEmailAnalyticsSummaryErrors];
5755
+ export type GetEmailAnalyticsSummaryResponses = {
5436
5756
  /**
5437
- * Variable created or updated
5757
+ * Analytics summary
5438
5758
  */
5439
- 200: EnvVar;
5759
+ 200: unknown;
5440
5760
  };
5441
- export type SetEnvVarResponse = SetEnvVarResponses[keyof SetEnvVarResponses];
5442
- export type BulkImportEnvVarsData = {
5443
- body: BulkImportBody;
5761
+ export type ListEmailDomainsData = {
5762
+ body?: never;
5444
5763
  path?: never;
5445
5764
  query?: never;
5446
- url: '/v1/env/bulk';
5765
+ url: '/v1/email/domains';
5447
5766
  };
5448
- export type BulkImportEnvVarsErrors = {
5767
+ export type ListEmailDomainsErrors = {
5449
5768
  /**
5450
- * Missing or invalid credentials
5769
+ * Missing or invalid API key
5451
5770
  */
5452
5771
  401: ErrorResponse;
5772
+ /**
5773
+ * Missing email:read scope
5774
+ */
5775
+ 403: ErrorResponse;
5453
5776
  /**
5454
5777
  * Internal error
5455
5778
  */
5456
5779
  500: ErrorResponse;
5457
5780
  };
5458
- export type BulkImportEnvVarsError = BulkImportEnvVarsErrors[keyof BulkImportEnvVarsErrors];
5459
- export type BulkImportEnvVarsResponses = {
5781
+ export type ListEmailDomainsError = ListEmailDomainsErrors[keyof ListEmailDomainsErrors];
5782
+ export type ListEmailDomainsResponses = {
5460
5783
  /**
5461
- * Variables imported
5784
+ * Sending domains
5462
5785
  */
5463
- 200: ListEnvResponse;
5786
+ 200: unknown;
5464
5787
  };
5465
- export type BulkImportEnvVarsResponse = BulkImportEnvVarsResponses[keyof BulkImportEnvVarsResponses];
5466
- export type DeleteEnvVarData = {
5467
- body?: never;
5468
- path: {
5469
- /**
5470
- * Environment variable id
5471
- */
5472
- id: string;
5473
- };
5788
+ export type AddEmailDomainData = {
5789
+ body: EmailAddDomainRequest;
5790
+ path?: never;
5474
5791
  query?: never;
5475
- url: '/v1/env/{id}';
5792
+ url: '/v1/email/domains';
5476
5793
  };
5477
- export type DeleteEnvVarErrors = {
5794
+ export type AddEmailDomainErrors = {
5478
5795
  /**
5479
- * Missing or invalid credentials
5796
+ * Missing or invalid API key
5480
5797
  */
5481
5798
  401: ErrorResponse;
5482
5799
  /**
5483
- * Variable not found
5800
+ * Missing email:send scope
5484
5801
  */
5485
- 404: ErrorResponse;
5802
+ 403: ErrorResponse;
5803
+ /**
5804
+ * Domain already registered
5805
+ */
5806
+ 409: ErrorResponse;
5486
5807
  /**
5487
5808
  * Internal error
5488
5809
  */
5489
5810
  500: ErrorResponse;
5490
5811
  };
5491
- export type DeleteEnvVarError = DeleteEnvVarErrors[keyof DeleteEnvVarErrors];
5492
- export type DeleteEnvVarResponses = {
5812
+ export type AddEmailDomainError = AddEmailDomainErrors[keyof AddEmailDomainErrors];
5813
+ export type AddEmailDomainResponses = {
5493
5814
  /**
5494
- * Variable deleted
5815
+ * Domain added
5816
+ */
5817
+ 200: EmailDomain;
5818
+ };
5819
+ export type AddEmailDomainResponse = AddEmailDomainResponses[keyof AddEmailDomainResponses];
5820
+ export type DeleteEmailDomainData = {
5821
+ body?: never;
5822
+ path: {
5823
+ /**
5824
+ * Domain id
5825
+ */
5826
+ id: string;
5827
+ };
5828
+ query?: never;
5829
+ url: '/v1/email/domains/{id}';
5830
+ };
5831
+ export type DeleteEmailDomainErrors = {
5832
+ /**
5833
+ * Missing or invalid API key
5834
+ */
5835
+ 401: ErrorResponse;
5836
+ /**
5837
+ * Missing email:send scope
5838
+ */
5839
+ 403: ErrorResponse;
5840
+ /**
5841
+ * Domain not found
5842
+ */
5843
+ 404: ErrorResponse;
5844
+ /**
5845
+ * Internal error
5846
+ */
5847
+ 500: ErrorResponse;
5848
+ };
5849
+ export type DeleteEmailDomainError = DeleteEmailDomainErrors[keyof DeleteEmailDomainErrors];
5850
+ export type DeleteEmailDomainResponses = {
5851
+ /**
5852
+ * Domain deleted
5853
+ */
5854
+ 200: unknown;
5855
+ };
5856
+ export type VerifyEmailDomainData = {
5857
+ body?: never;
5858
+ path: {
5859
+ /**
5860
+ * Domain id
5861
+ */
5862
+ id: string;
5863
+ };
5864
+ query?: never;
5865
+ url: '/v1/email/domains/{id}/verify';
5866
+ };
5867
+ export type VerifyEmailDomainErrors = {
5868
+ /**
5869
+ * Missing or invalid API key
5870
+ */
5871
+ 401: ErrorResponse;
5872
+ /**
5873
+ * Missing email:send scope
5874
+ */
5875
+ 403: ErrorResponse;
5876
+ /**
5877
+ * Domain not found
5878
+ */
5879
+ 404: ErrorResponse;
5880
+ /**
5881
+ * Internal error
5882
+ */
5883
+ 500: ErrorResponse;
5884
+ };
5885
+ export type VerifyEmailDomainError = VerifyEmailDomainErrors[keyof VerifyEmailDomainErrors];
5886
+ export type VerifyEmailDomainResponses = {
5887
+ /**
5888
+ * Verification result
5889
+ */
5890
+ 200: EmailDomain;
5891
+ };
5892
+ export type VerifyEmailDomainResponse = VerifyEmailDomainResponses[keyof VerifyEmailDomainResponses];
5893
+ export type ListEmailEventsData = {
5894
+ body?: never;
5895
+ path?: never;
5896
+ query?: never;
5897
+ url: '/v1/email/events';
5898
+ };
5899
+ export type ListEmailEventsErrors = {
5900
+ /**
5901
+ * Missing or invalid API key
5902
+ */
5903
+ 401: ErrorResponse;
5904
+ /**
5905
+ * Missing email:read scope
5906
+ */
5907
+ 403: ErrorResponse;
5908
+ /**
5909
+ * Internal error
5910
+ */
5911
+ 500: ErrorResponse;
5912
+ };
5913
+ export type ListEmailEventsError = ListEmailEventsErrors[keyof ListEmailEventsErrors];
5914
+ export type ListEmailEventsResponses = {
5915
+ /**
5916
+ * Delivery events
5917
+ */
5918
+ 200: unknown;
5919
+ };
5920
+ export type SendRawEmailData = {
5921
+ body: EmailSendRawRequest;
5922
+ path?: never;
5923
+ query?: never;
5924
+ url: '/v1/email/send/raw';
5925
+ };
5926
+ export type SendRawEmailErrors = {
5927
+ /**
5928
+ * Missing or invalid API key
5929
+ */
5930
+ 401: ErrorResponse;
5931
+ /**
5932
+ * Missing email:send scope
5933
+ */
5934
+ 403: ErrorResponse;
5935
+ /**
5936
+ * Internal error
5937
+ */
5938
+ 500: ErrorResponse;
5939
+ /**
5940
+ * Bring-your-own delivery is not enabled for this org
5941
+ */
5942
+ 503: ErrorResponse;
5943
+ };
5944
+ export type SendRawEmailError = SendRawEmailErrors[keyof SendRawEmailErrors];
5945
+ export type SendRawEmailResponses = {
5946
+ /**
5947
+ * Email accepted for delivery
5948
+ */
5949
+ 200: EmailSendResponse;
5950
+ };
5951
+ export type SendRawEmailResponse = SendRawEmailResponses[keyof SendRawEmailResponses];
5952
+ export type SendTransactionalEmailData = {
5953
+ body: EmailSendTxRequest;
5954
+ path?: never;
5955
+ query?: never;
5956
+ url: '/v1/email/send/tx';
5957
+ };
5958
+ export type SendTransactionalEmailErrors = {
5959
+ /**
5960
+ * Missing or invalid API key
5961
+ */
5962
+ 401: ErrorResponse;
5963
+ /**
5964
+ * Missing email:send scope
5965
+ */
5966
+ 403: ErrorResponse;
5967
+ /**
5968
+ * Internal error
5969
+ */
5970
+ 500: ErrorResponse;
5971
+ /**
5972
+ * Bring-your-own delivery is not enabled for this org
5973
+ */
5974
+ 503: ErrorResponse;
5975
+ };
5976
+ export type SendTransactionalEmailError = SendTransactionalEmailErrors[keyof SendTransactionalEmailErrors];
5977
+ export type SendTransactionalEmailResponses = {
5978
+ /**
5979
+ * Email accepted for delivery
5980
+ */
5981
+ 200: EmailSendResponse;
5982
+ };
5983
+ export type SendTransactionalEmailResponse = SendTransactionalEmailResponses[keyof SendTransactionalEmailResponses];
5984
+ export type GetEmailSettingsData = {
5985
+ body?: never;
5986
+ path?: never;
5987
+ query?: never;
5988
+ url: '/v1/email/settings';
5989
+ };
5990
+ export type GetEmailSettingsErrors = {
5991
+ /**
5992
+ * Missing or invalid API key
5993
+ */
5994
+ 401: ErrorResponse;
5995
+ /**
5996
+ * Missing email:read scope
5997
+ */
5998
+ 403: ErrorResponse;
5999
+ /**
6000
+ * Internal error
6001
+ */
6002
+ 500: ErrorResponse;
6003
+ };
6004
+ export type GetEmailSettingsError = GetEmailSettingsErrors[keyof GetEmailSettingsErrors];
6005
+ export type GetEmailSettingsResponses = {
6006
+ /**
6007
+ * Email settings
6008
+ */
6009
+ 200: unknown;
6010
+ };
6011
+ export type UpdateEmailSettingsData = {
6012
+ /**
6013
+ * Settings to apply
6014
+ */
6015
+ body: {
6016
+ [key: string]: unknown;
6017
+ };
6018
+ path?: never;
6019
+ query?: never;
6020
+ url: '/v1/email/settings';
6021
+ };
6022
+ export type UpdateEmailSettingsErrors = {
6023
+ /**
6024
+ * Missing or invalid API key
6025
+ */
6026
+ 401: ErrorResponse;
6027
+ /**
6028
+ * Missing email:send scope
6029
+ */
6030
+ 403: ErrorResponse;
6031
+ /**
6032
+ * Internal error
6033
+ */
6034
+ 500: ErrorResponse;
6035
+ };
6036
+ export type UpdateEmailSettingsError = UpdateEmailSettingsErrors[keyof UpdateEmailSettingsErrors];
6037
+ export type UpdateEmailSettingsResponses = {
6038
+ /**
6039
+ * Settings updated
6040
+ */
6041
+ 200: unknown;
6042
+ };
6043
+ export type GetEmailStatsData = {
6044
+ body?: never;
6045
+ path?: never;
6046
+ query?: never;
6047
+ url: '/v1/email/stats';
6048
+ };
6049
+ export type GetEmailStatsErrors = {
6050
+ /**
6051
+ * Missing or invalid API key
6052
+ */
6053
+ 401: ErrorResponse;
6054
+ /**
6055
+ * Missing email:read scope
6056
+ */
6057
+ 403: ErrorResponse;
6058
+ /**
6059
+ * Internal error
6060
+ */
6061
+ 500: ErrorResponse;
6062
+ };
6063
+ export type GetEmailStatsError = GetEmailStatsErrors[keyof GetEmailStatsErrors];
6064
+ export type GetEmailStatsResponses = {
6065
+ /**
6066
+ * Email stats
6067
+ */
6068
+ 200: unknown;
6069
+ };
6070
+ export type ListEmailSuppressionData = {
6071
+ body?: never;
6072
+ path?: never;
6073
+ query?: never;
6074
+ url: '/v1/email/suppression';
6075
+ };
6076
+ export type ListEmailSuppressionErrors = {
6077
+ /**
6078
+ * Missing or invalid API key
6079
+ */
6080
+ 401: ErrorResponse;
6081
+ /**
6082
+ * Missing email:read scope
6083
+ */
6084
+ 403: ErrorResponse;
6085
+ /**
6086
+ * Internal error
6087
+ */
6088
+ 500: ErrorResponse;
6089
+ };
6090
+ export type ListEmailSuppressionError = ListEmailSuppressionErrors[keyof ListEmailSuppressionErrors];
6091
+ export type ListEmailSuppressionResponses = {
6092
+ /**
6093
+ * Suppression list
6094
+ */
6095
+ 200: unknown;
6096
+ };
6097
+ export type ListEmailTemplatesData = {
6098
+ body?: never;
6099
+ path?: never;
6100
+ query?: never;
6101
+ url: '/v1/email/templates';
6102
+ };
6103
+ export type ListEmailTemplatesErrors = {
6104
+ /**
6105
+ * Missing or invalid API key
6106
+ */
6107
+ 401: ErrorResponse;
6108
+ /**
6109
+ * Missing email:read scope
6110
+ */
6111
+ 403: ErrorResponse;
6112
+ /**
6113
+ * Internal error
6114
+ */
6115
+ 500: ErrorResponse;
6116
+ };
6117
+ export type ListEmailTemplatesError = ListEmailTemplatesErrors[keyof ListEmailTemplatesErrors];
6118
+ export type ListEmailTemplatesResponses = {
6119
+ /**
6120
+ * Templates
6121
+ */
6122
+ 200: unknown;
6123
+ };
6124
+ export type CreateEmailTemplateData = {
6125
+ /**
6126
+ * Template definition
6127
+ */
6128
+ body: {
6129
+ [key: string]: unknown;
6130
+ };
6131
+ path?: never;
6132
+ query?: never;
6133
+ url: '/v1/email/templates';
6134
+ };
6135
+ export type CreateEmailTemplateErrors = {
6136
+ /**
6137
+ * Missing or invalid API key
6138
+ */
6139
+ 401: ErrorResponse;
6140
+ /**
6141
+ * Missing email:write scope
6142
+ */
6143
+ 403: ErrorResponse;
6144
+ /**
6145
+ * Internal error
6146
+ */
6147
+ 500: ErrorResponse;
6148
+ };
6149
+ export type CreateEmailTemplateError = CreateEmailTemplateErrors[keyof CreateEmailTemplateErrors];
6150
+ export type CreateEmailTemplateResponses = {
6151
+ /**
6152
+ * Template created
6153
+ */
6154
+ 200: unknown;
6155
+ };
6156
+ export type DeleteEmailTemplateData = {
6157
+ body?: never;
6158
+ path: {
6159
+ /**
6160
+ * Template id
6161
+ */
6162
+ id: string;
6163
+ };
6164
+ query?: never;
6165
+ url: '/v1/email/templates/{id}';
6166
+ };
6167
+ export type DeleteEmailTemplateErrors = {
6168
+ /**
6169
+ * Missing or invalid API key
6170
+ */
6171
+ 401: ErrorResponse;
6172
+ /**
6173
+ * Missing email:write scope
6174
+ */
6175
+ 403: ErrorResponse;
6176
+ /**
6177
+ * Template not found
6178
+ */
6179
+ 404: ErrorResponse;
6180
+ /**
6181
+ * Internal error
6182
+ */
6183
+ 500: ErrorResponse;
6184
+ };
6185
+ export type DeleteEmailTemplateError = DeleteEmailTemplateErrors[keyof DeleteEmailTemplateErrors];
6186
+ export type DeleteEmailTemplateResponses = {
6187
+ /**
6188
+ * Template deleted
6189
+ */
6190
+ 200: unknown;
6191
+ };
6192
+ export type UpdateEmailTemplateData = {
6193
+ /**
6194
+ * Template definition
6195
+ */
6196
+ body: {
6197
+ [key: string]: unknown;
6198
+ };
6199
+ path: {
6200
+ /**
6201
+ * Template id
6202
+ */
6203
+ id: string;
6204
+ };
6205
+ query?: never;
6206
+ url: '/v1/email/templates/{id}';
6207
+ };
6208
+ export type UpdateEmailTemplateErrors = {
6209
+ /**
6210
+ * Missing or invalid API key
6211
+ */
6212
+ 401: ErrorResponse;
6213
+ /**
6214
+ * Missing email:write scope
6215
+ */
6216
+ 403: ErrorResponse;
6217
+ /**
6218
+ * Template not found
6219
+ */
6220
+ 404: ErrorResponse;
6221
+ /**
6222
+ * Internal error
6223
+ */
6224
+ 500: ErrorResponse;
6225
+ };
6226
+ export type UpdateEmailTemplateError = UpdateEmailTemplateErrors[keyof UpdateEmailTemplateErrors];
6227
+ export type UpdateEmailTemplateResponses = {
6228
+ /**
6229
+ * Template updated
6230
+ */
6231
+ 200: unknown;
6232
+ };
6233
+ export type ListEnvVarsData = {
6234
+ body?: never;
6235
+ path?: never;
6236
+ query?: never;
6237
+ url: '/v1/env';
6238
+ };
6239
+ export type ListEnvVarsErrors = {
6240
+ /**
6241
+ * Missing or invalid credentials
6242
+ */
6243
+ 401: ErrorResponse;
6244
+ /**
6245
+ * Internal error
6246
+ */
6247
+ 500: ErrorResponse;
6248
+ };
6249
+ export type ListEnvVarsError = ListEnvVarsErrors[keyof ListEnvVarsErrors];
6250
+ export type ListEnvVarsResponses = {
6251
+ /**
6252
+ * All project environment variables
6253
+ */
6254
+ 200: ListEnvResponse;
6255
+ };
6256
+ export type ListEnvVarsResponse = ListEnvVarsResponses[keyof ListEnvVarsResponses];
6257
+ export type SetEnvVarData = {
6258
+ body: SetEnvBody;
6259
+ path?: never;
6260
+ query?: never;
6261
+ url: '/v1/env';
6262
+ };
6263
+ export type SetEnvVarErrors = {
6264
+ /**
6265
+ * Missing or invalid credentials
6266
+ */
6267
+ 401: ErrorResponse;
6268
+ /**
6269
+ * Internal error
6270
+ */
6271
+ 500: ErrorResponse;
6272
+ };
6273
+ export type SetEnvVarError = SetEnvVarErrors[keyof SetEnvVarErrors];
6274
+ export type SetEnvVarResponses = {
6275
+ /**
6276
+ * Variable created or updated
6277
+ */
6278
+ 200: EnvVar;
6279
+ };
6280
+ export type SetEnvVarResponse = SetEnvVarResponses[keyof SetEnvVarResponses];
6281
+ export type BulkImportEnvVarsData = {
6282
+ body: BulkImportBody;
6283
+ path?: never;
6284
+ query?: never;
6285
+ url: '/v1/env/bulk';
6286
+ };
6287
+ export type BulkImportEnvVarsErrors = {
6288
+ /**
6289
+ * Missing or invalid credentials
6290
+ */
6291
+ 401: ErrorResponse;
6292
+ /**
6293
+ * Internal error
6294
+ */
6295
+ 500: ErrorResponse;
6296
+ };
6297
+ export type BulkImportEnvVarsError = BulkImportEnvVarsErrors[keyof BulkImportEnvVarsErrors];
6298
+ export type BulkImportEnvVarsResponses = {
6299
+ /**
6300
+ * Variables imported
6301
+ */
6302
+ 200: ListEnvResponse;
6303
+ };
6304
+ export type BulkImportEnvVarsResponse = BulkImportEnvVarsResponses[keyof BulkImportEnvVarsResponses];
6305
+ export type DeleteEnvVarData = {
6306
+ body?: never;
6307
+ path: {
6308
+ /**
6309
+ * Environment variable id
6310
+ */
6311
+ id: string;
6312
+ };
6313
+ query?: never;
6314
+ url: '/v1/env/{id}';
6315
+ };
6316
+ export type DeleteEnvVarErrors = {
6317
+ /**
6318
+ * Missing or invalid credentials
6319
+ */
6320
+ 401: ErrorResponse;
6321
+ /**
6322
+ * Variable not found
6323
+ */
6324
+ 404: ErrorResponse;
6325
+ /**
6326
+ * Internal error
6327
+ */
6328
+ 500: ErrorResponse;
6329
+ };
6330
+ export type DeleteEnvVarError = DeleteEnvVarErrors[keyof DeleteEnvVarErrors];
6331
+ export type DeleteEnvVarResponses = {
6332
+ /**
6333
+ * Variable deleted
5495
6334
  */
5496
6335
  200: unknown;
5497
6336
  };
@@ -6962,12 +7801,7 @@ export type ListServicesResponses = {
6962
7801
  200: unknown;
6963
7802
  };
6964
7803
  export type CreateServiceData = {
6965
- /**
6966
- * Service deploy request
6967
- */
6968
- body: {
6969
- [key: string]: unknown;
6970
- };
7804
+ body: RunServiceDeployRequest;
6971
7805
  path?: never;
6972
7806
  query?: never;
6973
7807
  url: '/v1/run/services';
@@ -7046,12 +7880,7 @@ export type GetServiceResponses = {
7046
7880
  200: unknown;
7047
7881
  };
7048
7882
  export type UpdateServiceData = {
7049
- /**
7050
- * Service update (e.g. scale) request
7051
- */
7052
- body: {
7053
- [key: string]: unknown;
7054
- };
7883
+ body: RunServiceUpdateRequest;
7055
7884
  path: {
7056
7885
  /**
7057
7886
  * Service id