svix 2.3.0 → 2.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/dist/index.d.mts +1248 -798
  2. package/dist/index.d.mts.map +1 -1
  3. package/dist/index.mjs +4500 -3712
  4. package/dist/index.mjs.map +1 -1
  5. package/package.json +1 -1
  6. package/src/api/autoconfigSubscription.ts +53 -0
  7. package/src/api/destination.ts +133 -0
  8. package/src/api/destinationTransformation.ts +55 -0
  9. package/src/api_internal/autoconfigSubscription.ts +40 -0
  10. package/src/api_internal/autoconfigSubscriptionDestination.ts +27 -0
  11. package/src/api_internal/autoconfigSubscriptionEndpoint.ts +27 -0
  12. package/src/api_internal/endpoint.ts +3 -3
  13. package/src/api_internal/{endpointAutoConfig.ts → endpointAutoConfigDeprecated.ts} +1 -1
  14. package/src/autoconfig.test.ts +162 -3
  15. package/src/autoconfig.ts +88 -26
  16. package/src/autoconfigConsumer.ts +90 -16
  17. package/src/index.ts +10 -0
  18. package/src/models/autoConfigOut.ts +26 -0
  19. package/src/models/autoConfigSubscriptionOut.ts +38 -0
  20. package/src/models/destinationIn.ts +303 -0
  21. package/src/models/destinationOut.ts +295 -0
  22. package/src/models/destinationPatch.ts +302 -0
  23. package/src/models/destinationStatus.ts +18 -0
  24. package/src/models/destinationStatusIn.ts +16 -0
  25. package/src/models/destinationTransformIn.ts +19 -0
  26. package/src/models/destinationTransformationOut.ts +22 -0
  27. package/src/models/eventBridgeConfigIn.ts +14 -2
  28. package/src/models/eventBridgeConfigOut.ts +7 -1
  29. package/src/models/eventBridgeConfigPatch.ts +6 -0
  30. package/src/models/fifoEndpointConfigIn.ts +25 -0
  31. package/src/models/index.ts +13 -0
  32. package/src/models/ingestSourceIn.ts +12 -0
  33. package/src/models/ingestSourceOut.ts +12 -0
  34. package/src/models/listResponseDestinationOut.ts +31 -0
  35. package/src/models/mergeConfig.ts +19 -0
  36. package/src/models/mergeConfigOut.ts +15 -0
  37. package/src/models/redshiftConfigIn.ts +14 -2
  38. package/src/models/redshiftConfigOut.ts +7 -1
  39. package/src/models/redshiftConfigPatch.ts +6 -0
  40. package/src/models/rotateSubscriptionIn2.ts +29 -0
  41. package/src/models/s3ConfigIn.ts +1 -1
  42. package/src/models/snsConfigIn.ts +14 -2
  43. package/src/models/snsConfigOut.ts +7 -1
  44. package/src/models/snsConfigPatch.ts +6 -0
  45. package/src/models/sqsConfigIn.ts +14 -2
  46. package/src/models/sqsConfigOut.ts +7 -1
  47. package/src/models/sqsConfigPatch.ts +6 -0
  48. package/src/models/status.ts +16 -0
  49. package/src/models/streamSinkOut.ts +15 -0
  50. package/src/request.ts +1 -1
@@ -0,0 +1,19 @@
1
+ // this file is @generated
2
+
3
+ export interface MergeConfig {
4
+ secret: string;
5
+ }
6
+
7
+ export const MergeConfigSerializer = {
8
+ _fromJsonObject(object: any): MergeConfig {
9
+ return {
10
+ secret: object["secret"],
11
+ };
12
+ },
13
+
14
+ _toJsonObject(self: MergeConfig): any {
15
+ return {
16
+ secret: self.secret,
17
+ };
18
+ },
19
+ };
@@ -0,0 +1,15 @@
1
+ // this file is @generated
2
+
3
+ // biome-ignore-all lint/suspicious/noEmptyInterface: backwards compat
4
+
5
+ export interface MergeConfigOut {}
6
+
7
+ export const MergeConfigOutSerializer = {
8
+ _fromJsonObject(_object: any): MergeConfigOut {
9
+ return {};
10
+ },
11
+
12
+ _toJsonObject(_self: MergeConfigOut): any {
13
+ return {};
14
+ },
15
+ };
@@ -9,15 +9,23 @@ export interface RedshiftConfigIn {
9
9
  /**
10
10
  * Access key ID.
11
11
  *
12
- * Currently a required field, but marked as optional because we may add different authentication in the future.
12
+ * Required (along with `secret_access_key`) if `role_arn` is blank.
13
13
  */
14
14
  accessKeyId?: string | null;
15
15
  /**
16
16
  * Secret access key.
17
17
  *
18
- * Currently a required field, but marked as optional because we may add different authentication in the future.
18
+ * Required (along with `access_key_id`) if `role_arn` is blank.
19
19
  */
20
20
  secretAccessKey?: string | null;
21
+ /** Role ARN for delegated authentication */
22
+ roleArn?: string | null;
23
+ /**
24
+ * Shared secret passed as the STS ExternalId.
25
+ *
26
+ * Can only be set if `role_arn` is Some
27
+ */
28
+ externalId?: string | null;
21
29
  /**
22
30
  * The region of the Redshift DB.
23
31
  *
@@ -55,6 +63,8 @@ export const RedshiftConfigInSerializer = {
55
63
  return {
56
64
  accessKeyId: object["accessKeyId"],
57
65
  secretAccessKey: object["secretAccessKey"],
66
+ roleArn: object["roleArn"],
67
+ externalId: object["externalId"],
58
68
  region: object["region"],
59
69
  clusterIdentifier: object["clusterIdentifier"],
60
70
  dbUser: object["dbUser"],
@@ -69,6 +79,8 @@ export const RedshiftConfigInSerializer = {
69
79
  return {
70
80
  accessKeyId: self.accessKeyId,
71
81
  secretAccessKey: self.secretAccessKey,
82
+ roleArn: self.roleArn,
83
+ externalId: self.externalId,
72
84
  region: self.region,
73
85
  clusterIdentifier: self.clusterIdentifier,
74
86
  dbUser: self.dbUser,
@@ -1,7 +1,9 @@
1
1
  // this file is @generated
2
2
 
3
3
  export interface RedshiftConfigOut {
4
- accessKeyId: string;
4
+ accessKeyId?: string | null;
5
+ roleArn?: string | null;
6
+ externalId?: string | null;
5
7
  region: string;
6
8
  clusterIdentifier?: string | null;
7
9
  dbUser?: string | null;
@@ -30,6 +32,8 @@ export const RedshiftConfigOutSerializer = {
30
32
  _fromJsonObject(object: any): RedshiftConfigOut {
31
33
  return {
32
34
  accessKeyId: object["accessKeyId"],
35
+ roleArn: object["roleArn"],
36
+ externalId: object["externalId"],
33
37
  region: object["region"],
34
38
  clusterIdentifier: object["clusterIdentifier"],
35
39
  dbUser: object["dbUser"],
@@ -43,6 +47,8 @@ export const RedshiftConfigOutSerializer = {
43
47
  _toJsonObject(self: RedshiftConfigOut): any {
44
48
  return {
45
49
  accessKeyId: self.accessKeyId,
50
+ roleArn: self.roleArn,
51
+ externalId: self.externalId,
46
52
  region: self.region,
47
53
  clusterIdentifier: self.clusterIdentifier,
48
54
  dbUser: self.dbUser,
@@ -3,6 +3,8 @@
3
3
  export interface RedshiftConfigPatch {
4
4
  accessKeyId?: string;
5
5
  secretAccessKey?: string;
6
+ roleArn?: string;
7
+ externalId?: string;
6
8
  region?: string;
7
9
  /**
8
10
  * Database name.
@@ -29,6 +31,8 @@ export const RedshiftConfigPatchSerializer = {
29
31
  return {
30
32
  accessKeyId: object["accessKeyId"],
31
33
  secretAccessKey: object["secretAccessKey"],
34
+ roleArn: object["roleArn"],
35
+ externalId: object["externalId"],
32
36
  region: object["region"],
33
37
  dbName: object["dbName"],
34
38
  schemaName: object["schemaName"],
@@ -40,6 +44,8 @@ export const RedshiftConfigPatchSerializer = {
40
44
  return {
41
45
  accessKeyId: self.accessKeyId,
42
46
  secretAccessKey: self.secretAccessKey,
47
+ roleArn: self.roleArn,
48
+ externalId: self.externalId,
43
49
  region: self.region,
44
50
  dbName: self.dbName,
45
51
  schemaName: self.schemaName,
@@ -0,0 +1,29 @@
1
+ // this file is @generated
2
+ import {
3
+ type EndpointSecretRotateIn,
4
+ EndpointSecretRotateInSerializer,
5
+ } from "./endpointSecretRotateIn";
6
+
7
+ export interface RotateSubscriptionIn2 {
8
+ signingSecret?: EndpointSecretRotateIn | null;
9
+ }
10
+
11
+ export const RotateSubscriptionIn2Serializer = {
12
+ _fromJsonObject(object: any): RotateSubscriptionIn2 {
13
+ return {
14
+ signingSecret:
15
+ object["signingSecret"] != null
16
+ ? EndpointSecretRotateInSerializer._fromJsonObject(object["signingSecret"])
17
+ : undefined,
18
+ };
19
+ },
20
+
21
+ _toJsonObject(self: RotateSubscriptionIn2): any {
22
+ return {
23
+ signingSecret:
24
+ self.signingSecret != null
25
+ ? EndpointSecretRotateInSerializer._toJsonObject(self.signingSecret)
26
+ : undefined,
27
+ };
28
+ },
29
+ };
@@ -26,7 +26,7 @@ export interface S3ConfigIn {
26
26
  /**
27
27
  * Shared secret passed as the STS ExternalId.
28
28
  *
29
- * Required if `role_arn` is not null.
29
+ * Recommended if `role_arn` is not null.
30
30
  */
31
31
  externalId?: string | null;
32
32
  }
@@ -12,16 +12,24 @@ export interface SnsConfigIn {
12
12
  /**
13
13
  * Access key ID.
14
14
  *
15
- * Currently a required field, but marked as optional because we may add different authentication in the future.
15
+ * Required (along with `secret_access_key`) if `role_arn` is None
16
16
  */
17
17
  accessKeyId?: string | null;
18
18
  /**
19
19
  * Secret access key.
20
20
  *
21
- * Currently a required field, but marked as optional because we may add different authentication in the future.
21
+ * Required (along with `access_key_id`) if `role_arn` is None
22
22
  */
23
23
  secretAccessKey?: string | null;
24
24
  endpointUrl?: string | null;
25
+ /** Role ARN for delegated authentication */
26
+ roleArn?: string | null;
27
+ /**
28
+ * Shared secret passed as the STS ExternalId.
29
+ *
30
+ * Can only be set if `role_arn` is Some
31
+ */
32
+ externalId?: string | null;
25
33
  }
26
34
 
27
35
  export const SnsConfigInSerializer = {
@@ -32,6 +40,8 @@ export const SnsConfigInSerializer = {
32
40
  accessKeyId: object["accessKeyId"],
33
41
  secretAccessKey: object["secretAccessKey"],
34
42
  endpointUrl: object["endpointUrl"],
43
+ roleArn: object["roleArn"],
44
+ externalId: object["externalId"],
35
45
  };
36
46
  },
37
47
 
@@ -42,6 +52,8 @@ export const SnsConfigInSerializer = {
42
52
  accessKeyId: self.accessKeyId,
43
53
  secretAccessKey: self.secretAccessKey,
44
54
  endpointUrl: self.endpointUrl,
55
+ roleArn: self.roleArn,
56
+ externalId: self.externalId,
45
57
  };
46
58
  },
47
59
  };
@@ -3,7 +3,9 @@
3
3
  export interface SnsConfigOut {
4
4
  topicArn: string;
5
5
  region: string;
6
- accessKeyId: string;
6
+ accessKeyId?: string | null;
7
+ roleArn?: string | null;
8
+ externalId?: string | null;
7
9
  }
8
10
 
9
11
  export const SnsConfigOutSerializer = {
@@ -12,6 +14,8 @@ export const SnsConfigOutSerializer = {
12
14
  topicArn: object["topicArn"],
13
15
  region: object["region"],
14
16
  accessKeyId: object["accessKeyId"],
17
+ roleArn: object["roleArn"],
18
+ externalId: object["externalId"],
15
19
  };
16
20
  },
17
21
 
@@ -20,6 +24,8 @@ export const SnsConfigOutSerializer = {
20
24
  topicArn: self.topicArn,
21
25
  region: self.region,
22
26
  accessKeyId: self.accessKeyId,
27
+ roleArn: self.roleArn,
28
+ externalId: self.externalId,
23
29
  };
24
30
  },
25
31
  };
@@ -5,6 +5,8 @@ export interface SnsConfigPatch {
5
5
  region?: string;
6
6
  accessKeyId?: string;
7
7
  secretAccessKey?: string;
8
+ roleArn?: string;
9
+ externalId?: string;
8
10
  endpointUrl?: string | null;
9
11
  }
10
12
 
@@ -15,6 +17,8 @@ export const SnsConfigPatchSerializer = {
15
17
  region: object["region"],
16
18
  accessKeyId: object["accessKeyId"],
17
19
  secretAccessKey: object["secretAccessKey"],
20
+ roleArn: object["roleArn"],
21
+ externalId: object["externalId"],
18
22
  endpointUrl: object["endpointUrl"],
19
23
  };
20
24
  },
@@ -25,6 +29,8 @@ export const SnsConfigPatchSerializer = {
25
29
  region: self.region,
26
30
  accessKeyId: self.accessKeyId,
27
31
  secretAccessKey: self.secretAccessKey,
32
+ roleArn: self.roleArn,
33
+ externalId: self.externalId,
28
34
  endpointUrl: self.endpointUrl,
29
35
  };
30
36
  },
@@ -12,15 +12,23 @@ export interface SqsConfigIn {
12
12
  /**
13
13
  * Access key ID.
14
14
  *
15
- * Currently a required field, but marked as optional because we may add different authentication in the future.
15
+ * Required (along with `secret_access_key`) if `role_arn` is blank.
16
16
  */
17
17
  accessKeyId?: string | null;
18
18
  /**
19
19
  * Secret access key.
20
20
  *
21
- * Currently a required field, but marked as optional because we may add different authentication in the future.
21
+ * Required (along with `access_key_id`) if `role_arn` is blank.
22
22
  */
23
23
  secretAccessKey?: string | null;
24
+ /** Role ARN for delegated authentication */
25
+ roleArn?: string | null;
26
+ /**
27
+ * Shared secret passed as the STS ExternalId.
28
+ *
29
+ * Can only be set if `role_arn` is Some
30
+ */
31
+ externalId?: string | null;
24
32
  endpointUrl?: string | null;
25
33
  }
26
34
 
@@ -31,6 +39,8 @@ export const SqsConfigInSerializer = {
31
39
  region: object["region"],
32
40
  accessKeyId: object["accessKeyId"],
33
41
  secretAccessKey: object["secretAccessKey"],
42
+ roleArn: object["roleArn"],
43
+ externalId: object["externalId"],
34
44
  endpointUrl: object["endpointUrl"],
35
45
  };
36
46
  },
@@ -41,6 +51,8 @@ export const SqsConfigInSerializer = {
41
51
  region: self.region,
42
52
  accessKeyId: self.accessKeyId,
43
53
  secretAccessKey: self.secretAccessKey,
54
+ roleArn: self.roleArn,
55
+ externalId: self.externalId,
44
56
  endpointUrl: self.endpointUrl,
45
57
  };
46
58
  },
@@ -3,7 +3,9 @@
3
3
  export interface SqsConfigOut {
4
4
  queueUrl: string;
5
5
  region: string;
6
- accessKeyId: string;
6
+ accessKeyId?: string | null;
7
+ roleArn?: string | null;
8
+ externalId?: string | null;
7
9
  endpointUrl?: string | null;
8
10
  }
9
11
 
@@ -13,6 +15,8 @@ export const SqsConfigOutSerializer = {
13
15
  queueUrl: object["queueUrl"],
14
16
  region: object["region"],
15
17
  accessKeyId: object["accessKeyId"],
18
+ roleArn: object["roleArn"],
19
+ externalId: object["externalId"],
16
20
  endpointUrl: object["endpointUrl"],
17
21
  };
18
22
  },
@@ -22,6 +26,8 @@ export const SqsConfigOutSerializer = {
22
26
  queueUrl: self.queueUrl,
23
27
  region: self.region,
24
28
  accessKeyId: self.accessKeyId,
29
+ roleArn: self.roleArn,
30
+ externalId: self.externalId,
25
31
  endpointUrl: self.endpointUrl,
26
32
  };
27
33
  },
@@ -5,6 +5,8 @@ export interface SqsConfigPatch {
5
5
  region?: string;
6
6
  accessKeyId?: string;
7
7
  secretAccessKey?: string;
8
+ roleArn?: string;
9
+ externalId?: string;
8
10
  endpointUrl?: string | null;
9
11
  }
10
12
 
@@ -15,6 +17,8 @@ export const SqsConfigPatchSerializer = {
15
17
  region: object["region"],
16
18
  accessKeyId: object["accessKeyId"],
17
19
  secretAccessKey: object["secretAccessKey"],
20
+ roleArn: object["roleArn"],
21
+ externalId: object["externalId"],
18
22
  endpointUrl: object["endpointUrl"],
19
23
  };
20
24
  },
@@ -25,6 +29,8 @@ export const SqsConfigPatchSerializer = {
25
29
  region: self.region,
26
30
  accessKeyId: self.accessKeyId,
27
31
  secretAccessKey: self.secretAccessKey,
32
+ roleArn: self.roleArn,
33
+ externalId: self.externalId,
28
34
  endpointUrl: self.endpointUrl,
29
35
  };
30
36
  },
@@ -0,0 +1,16 @@
1
+ // this file is @generated
2
+
3
+ export enum Status {
4
+ Pending = "pending",
5
+ Active = "active",
6
+ }
7
+
8
+ export const StatusSerializer = {
9
+ _fromJsonObject(object: any): Status {
10
+ return object;
11
+ },
12
+
13
+ _toJsonObject(self: Status): any {
14
+ return self;
15
+ },
16
+ };
@@ -58,11 +58,19 @@ interface _StreamSinkOutFields {
58
58
  // biome-ignore lint/suspicious/noEmptyInterface: backwards compat
59
59
  interface StreamSinkOutPollerConfig {}
60
60
 
61
+ // biome-ignore lint/suspicious/noEmptyInterface: backwards compat
62
+ interface StreamSinkOutPollingEndpointConfig {}
63
+
61
64
  interface StreamSinkOutPoller {
62
65
  type: "poller";
63
66
  config?: StreamSinkOutPollerConfig;
64
67
  }
65
68
 
69
+ interface StreamSinkOutPollingEndpoint {
70
+ type: "pollingEndpoint";
71
+ config?: StreamSinkOutPollingEndpointConfig;
72
+ }
73
+
66
74
  interface StreamSinkOutAzureBlobStorage {
67
75
  type: "azureBlobStorage";
68
76
  config: AzureBlobStorageConfigOut;
@@ -141,6 +149,7 @@ interface StreamSinkOutPostgres {
141
149
  export type StreamSinkOut = _StreamSinkOutFields &
142
150
  (
143
151
  | StreamSinkOutPoller
152
+ | StreamSinkOutPollingEndpoint
144
153
  | StreamSinkOutAzureBlobStorage
145
154
  | StreamSinkOutOtelTracing
146
155
  | StreamSinkOutHttp
@@ -166,6 +175,9 @@ export const StreamSinkOutSerializer = {
166
175
  switch (type) {
167
176
  case "poller":
168
177
  return {};
178
+
179
+ case "pollingEndpoint":
180
+ return {};
169
181
  case "azureBlobStorage":
170
182
  return AzureBlobStorageConfigOutSerializer._fromJsonObject(object["config"]);
171
183
  case "otelTracing":
@@ -227,6 +239,9 @@ export const StreamSinkOutSerializer = {
227
239
  case "poller":
228
240
  config = {};
229
241
  break;
242
+ case "pollingEndpoint":
243
+ config = {};
244
+ break;
230
245
  case "azureBlobStorage":
231
246
  config = AzureBlobStorageConfigOutSerializer._toJsonObject(self.config);
232
247
  break;
package/src/request.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { ApiException, type XOR } from "./util";
2
2
  import type { HttpErrorOut, HTTPValidationError } from "./HttpErrors";
3
3
 
4
- export const LIB_VERSION = "2.3.0";
4
+ export const LIB_VERSION = "2.5.0";
5
5
 
6
6
  function getUserAgent() {
7
7
  var fields = [`svix-libs/${LIB_VERSION}/javascript`];