Skip to content

Commit 19469cd

Browse files
authored
feat(serverless): simplify the triggers by merging Trigger and TriggerInput (#452)
1 parent be760fe commit 19469cd

File tree

5 files changed

+198
-673
lines changed

5 files changed

+198
-673
lines changed

packages/clients/src/api/function/v1beta1/api.gen.ts

Lines changed: 21 additions & 148 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ import {
1515
FUNCTION_TRANSIENT_STATUSES,
1616
NAMESPACE_TRANSIENT_STATUSES,
1717
TOKEN_TRANSIENT_STATUSES,
18-
TRIGGER_INPUT_TRANSIENT_STATUSES,
1918
TRIGGER_TRANSIENT_STATUSES,
2019
} from './content.gen'
2120
import {
@@ -24,13 +23,10 @@ import {
2423
marshalCreateFunctionRequest,
2524
marshalCreateNamespaceRequest,
2625
marshalCreateTokenRequest,
27-
marshalCreateTriggerInputRequest,
2826
marshalCreateTriggerRequest,
29-
marshalSetTriggerInputsRequest,
3027
marshalUpdateCronRequest,
3128
marshalUpdateFunctionRequest,
3229
marshalUpdateNamespaceRequest,
33-
marshalUpdateTriggerInputRequest,
3430
marshalUpdateTriggerRequest,
3531
unmarshalCron,
3632
unmarshalDomain,
@@ -43,13 +39,10 @@ import {
4339
unmarshalListLogsResponse,
4440
unmarshalListNamespacesResponse,
4541
unmarshalListTokensResponse,
46-
unmarshalListTriggerInputsResponse,
4742
unmarshalListTriggersResponse,
4843
unmarshalNamespace,
49-
unmarshalSetTriggerInputsResponse,
5044
unmarshalToken,
5145
unmarshalTrigger,
52-
unmarshalTriggerInput,
5346
unmarshalUploadURL,
5447
} from './marshalling.gen'
5548
import type {
@@ -58,15 +51,13 @@ import type {
5851
CreateFunctionRequest,
5952
CreateNamespaceRequest,
6053
CreateTokenRequest,
61-
CreateTriggerInputRequest,
6254
CreateTriggerRequest,
6355
Cron,
6456
DeleteCronRequest,
6557
DeleteDomainRequest,
6658
DeleteFunctionRequest,
6759
DeleteNamespaceRequest,
6860
DeleteTokenRequest,
69-
DeleteTriggerInputRequest,
7061
DeleteTriggerRequest,
7162
DeployFunctionRequest,
7263
Domain,
@@ -79,7 +70,6 @@ import type {
7970
GetFunctionUploadURLRequest,
8071
GetNamespaceRequest,
8172
GetTokenRequest,
82-
GetTriggerInputRequest,
8373
GetTriggerRequest,
8474
IssueJWTRequest,
8575
ListCronsRequest,
@@ -96,20 +86,14 @@ import type {
9686
ListNamespacesResponse,
9787
ListTokensRequest,
9888
ListTokensResponse,
99-
ListTriggerInputsRequest,
100-
ListTriggerInputsResponse,
10189
ListTriggersRequest,
10290
ListTriggersResponse,
10391
Namespace,
104-
SetTriggerInputsRequest,
105-
SetTriggerInputsResponse,
10692
Token,
10793
Trigger,
108-
TriggerInput,
10994
UpdateCronRequest,
11095
UpdateFunctionRequest,
11196
UpdateNamespaceRequest,
112-
UpdateTriggerInputRequest,
11397
UpdateTriggerRequest,
11498
UploadURL,
11599
} from './types.gen'
@@ -948,7 +932,9 @@ export class API extends ParentAPI {
948932
options,
949933
)
950934

951-
protected pageOfListTriggers = (request: Readonly<ListTriggersRequest>) =>
935+
protected pageOfListTriggers = (
936+
request: Readonly<ListTriggersRequest> = {},
937+
) =>
952938
this.client.fetch<ListTriggersResponse>(
953939
{
954940
method: 'GET',
@@ -957,19 +943,35 @@ export class API extends ParentAPI {
957943
request.region ?? this.client.settings.defaultRegion,
958944
)}/triggers`,
959945
urlParams: urlParams(
960-
['function_id', request.functionId],
961946
['order_by', request.orderBy ?? 'created_at_asc'],
962947
['page', request.page],
963948
[
964949
'page_size',
965950
request.pageSize ?? this.client.settings.defaultPageSize,
966951
],
952+
...Object.entries(
953+
resolveOneOf([
954+
{
955+
default: this.client.settings.defaultProjectId,
956+
param: 'project_id',
957+
value: request.projectId,
958+
},
959+
{
960+
param: 'function_id',
961+
value: request.functionId,
962+
},
963+
{
964+
param: 'namespace_id',
965+
value: request.namespaceId,
966+
},
967+
]),
968+
),
967969
),
968970
},
969971
unmarshalListTriggersResponse,
970972
)
971973

972-
listTriggers = (request: Readonly<ListTriggersRequest>) =>
974+
listTriggers = (request: Readonly<ListTriggersRequest> = {}) =>
973975
enrichForPagination('triggers', this.pageOfListTriggers, request)
974976

975977
updateTrigger = (request: Readonly<UpdateTriggerRequest>) =>
@@ -999,133 +1001,4 @@ export class API extends ParentAPI {
9991001
},
10001002
unmarshalTrigger,
10011003
)
1002-
1003-
createTriggerInput = (request: Readonly<CreateTriggerInputRequest>) =>
1004-
this.client.fetch<TriggerInput>(
1005-
{
1006-
body: JSON.stringify(
1007-
marshalCreateTriggerInputRequest(request, this.client.settings),
1008-
),
1009-
headers: jsonContentHeaders,
1010-
method: 'POST',
1011-
path: `/functions/v1beta1/regions/${validatePathParam(
1012-
'region',
1013-
request.region ?? this.client.settings.defaultRegion,
1014-
)}/trigger-inputs`,
1015-
},
1016-
unmarshalTriggerInput,
1017-
)
1018-
1019-
getTriggerInput = (request: Readonly<GetTriggerInputRequest>) =>
1020-
this.client.fetch<TriggerInput>(
1021-
{
1022-
method: 'GET',
1023-
path: `/functions/v1beta1/regions/${validatePathParam(
1024-
'region',
1025-
request.region ?? this.client.settings.defaultRegion,
1026-
)}/trigger-inputs/${validatePathParam(
1027-
'triggerInputId',
1028-
request.triggerInputId,
1029-
)}`,
1030-
},
1031-
unmarshalTriggerInput,
1032-
)
1033-
1034-
/**
1035-
* Waits for {@link TriggerInput} to be in a final state.
1036-
*
1037-
* @param request - The request {@link GetTriggerInputRequest}
1038-
* @param options - The waiting options
1039-
* @returns A Promise of TriggerInput
1040-
*/
1041-
waitForTriggerInput = (
1042-
request: Readonly<GetTriggerInputRequest>,
1043-
options?: Readonly<WaitForOptions<TriggerInput>>,
1044-
) =>
1045-
waitForResource(
1046-
options?.stop ??
1047-
(res =>
1048-
Promise.resolve(
1049-
!TRIGGER_INPUT_TRANSIENT_STATUSES.includes(res.status),
1050-
)),
1051-
this.getTriggerInput,
1052-
request,
1053-
options,
1054-
)
1055-
1056-
protected pageOfListTriggerInputs = (
1057-
request: Readonly<ListTriggerInputsRequest>,
1058-
) =>
1059-
this.client.fetch<ListTriggerInputsResponse>(
1060-
{
1061-
method: 'GET',
1062-
path: `/functions/v1beta1/regions/${validatePathParam(
1063-
'region',
1064-
request.region ?? this.client.settings.defaultRegion,
1065-
)}/trigger-inputs`,
1066-
urlParams: urlParams(
1067-
['order_by', request.orderBy ?? 'created_at_asc'],
1068-
['page', request.page],
1069-
[
1070-
'page_size',
1071-
request.pageSize ?? this.client.settings.defaultPageSize,
1072-
],
1073-
['trigger_id', request.triggerId],
1074-
),
1075-
},
1076-
unmarshalListTriggerInputsResponse,
1077-
)
1078-
1079-
listTriggerInputs = (request: Readonly<ListTriggerInputsRequest>) =>
1080-
enrichForPagination('inputs', this.pageOfListTriggerInputs, request)
1081-
1082-
setTriggerInputs = (request: Readonly<SetTriggerInputsRequest>) =>
1083-
this.client.fetch<SetTriggerInputsResponse>(
1084-
{
1085-
body: JSON.stringify(
1086-
marshalSetTriggerInputsRequest(request, this.client.settings),
1087-
),
1088-
headers: jsonContentHeaders,
1089-
method: 'PUT',
1090-
path: `/functions/v1beta1/regions/${validatePathParam(
1091-
'region',
1092-
request.region ?? this.client.settings.defaultRegion,
1093-
)}/trigger-inputs`,
1094-
},
1095-
unmarshalSetTriggerInputsResponse,
1096-
)
1097-
1098-
updateTriggerInput = (request: Readonly<UpdateTriggerInputRequest>) =>
1099-
this.client.fetch<TriggerInput>(
1100-
{
1101-
body: JSON.stringify(
1102-
marshalUpdateTriggerInputRequest(request, this.client.settings),
1103-
),
1104-
headers: jsonContentHeaders,
1105-
method: 'PATCH',
1106-
path: `/functions/v1beta1/regions/${validatePathParam(
1107-
'region',
1108-
request.region ?? this.client.settings.defaultRegion,
1109-
)}/trigger-inputs/${validatePathParam(
1110-
'triggerInputId',
1111-
request.triggerInputId,
1112-
)}`,
1113-
},
1114-
unmarshalTriggerInput,
1115-
)
1116-
1117-
deleteTriggerInput = (request: Readonly<DeleteTriggerInputRequest>) =>
1118-
this.client.fetch<TriggerInput>(
1119-
{
1120-
method: 'DELETE',
1121-
path: `/functions/v1beta1/regions/${validatePathParam(
1122-
'region',
1123-
request.region ?? this.client.settings.defaultRegion,
1124-
)}/trigger-inputs/${validatePathParam(
1125-
'triggerInputId',
1126-
request.triggerInputId,
1127-
)}`,
1128-
},
1129-
unmarshalTriggerInput,
1130-
)
11311004
}

packages/clients/src/api/function/v1beta1/content.gen.ts

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import type {
66
FunctionStatus,
77
NamespaceStatus,
88
TokenStatus,
9-
TriggerInputStatus,
109
TriggerStatus,
1110
} from './types.gen'
1211

@@ -41,13 +40,6 @@ export const NAMESPACE_TRANSIENT_STATUSES: NamespaceStatus[] = [
4140
/** Lists transient statutes of the enum {@link TokenStatus}. */
4241
export const TOKEN_TRANSIENT_STATUSES: TokenStatus[] = ['deleting', 'creating']
4342

44-
/** Lists transient statutes of the enum {@link TriggerInputStatus}. */
45-
export const TRIGGER_INPUT_TRANSIENT_STATUSES: TriggerInputStatus[] = [
46-
'deleting',
47-
'creating',
48-
'pending',
49-
]
50-
5143
/** Lists transient statutes of the enum {@link TriggerStatus}. */
5244
export const TRIGGER_TRANSIENT_STATUSES: TriggerStatus[] = [
5345
'deleting',

packages/clients/src/api/function/v1beta1/index.gen.ts

Lines changed: 10 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -8,23 +8,17 @@ export type {
88
CreateFunctionRequest,
99
CreateNamespaceRequest,
1010
CreateTokenRequest,
11-
CreateTriggerInputRequest,
12-
CreateTriggerInputRequestNatsClientConfigSpec,
13-
CreateTriggerInputRequestSqsClientConfigSpec,
1411
CreateTriggerRequest,
15-
CreateTriggerRequestNatsFailureHandlingPolicy,
16-
CreateTriggerRequestNatsFailureHandlingPolicyNatsDeadLetter,
17-
CreateTriggerRequestNatsFailureHandlingPolicyRetryPolicy,
18-
CreateTriggerRequestNatsFailureHandlingPolicySqsDeadLetter,
19-
CreateTriggerRequestSqsFailureHandlingPolicy,
12+
CreateTriggerRequestMnqNatsClientConfig,
13+
CreateTriggerRequestMnqSqsClientConfig,
14+
CreateTriggerRequestSqsClientConfig,
2015
Cron,
2116
CronStatus,
2217
DeleteCronRequest,
2318
DeleteDomainRequest,
2419
DeleteFunctionRequest,
2520
DeleteNamespaceRequest,
2621
DeleteTokenRequest,
27-
DeleteTriggerInputRequest,
2822
DeleteTriggerRequest,
2923
DeployFunctionRequest,
3024
Domain,
@@ -42,7 +36,6 @@ export type {
4236
GetFunctionUploadURLRequest,
4337
GetNamespaceRequest,
4438
GetTokenRequest,
45-
GetTriggerInputRequest,
4639
GetTriggerRequest,
4740
IssueJWTRequest,
4841
ListCronsRequest,
@@ -65,9 +58,6 @@ export type {
6558
ListTokensRequest,
6659
ListTokensRequestOrderBy,
6760
ListTokensResponse,
68-
ListTriggerInputsRequest,
69-
ListTriggerInputsRequestOrderBy,
70-
ListTriggerInputsResponse,
7161
ListTriggersRequest,
7262
ListTriggersRequestOrderBy,
7363
ListTriggersResponse,
@@ -80,30 +70,20 @@ export type {
8070
RuntimeStatus,
8171
Secret,
8272
SecretHashedValue,
83-
SetTriggerInputsRequest,
84-
SetTriggerInputsRequestNatsConfigs,
85-
SetTriggerInputsRequestSqsConfigs,
86-
SetTriggerInputsResponse,
8773
Token,
8874
TokenStatus,
8975
Trigger,
90-
TriggerInput,
91-
TriggerInputNatsClientConfig,
92-
TriggerInputSqsClientConfig,
93-
TriggerInputStatus,
94-
TriggerNatsDeadLetter,
95-
TriggerNatsFailureHandlingPolicy,
96-
TriggerRetryPolicy,
97-
TriggerSqsDeadLetter,
98-
TriggerSqsFailureHandlingPolicy,
76+
TriggerInputType,
77+
TriggerMnqNatsClientConfig,
78+
TriggerMnqSqsClientConfig,
79+
TriggerSqsClientConfig,
9980
TriggerStatus,
100-
TriggerType,
10181
UpdateCronRequest,
10282
UpdateFunctionRequest,
10383
UpdateNamespaceRequest,
104-
UpdateTriggerInputRequest,
105-
UpdateTriggerInputRequestNatsClientConfigSpec,
106-
UpdateTriggerInputRequestSqsClientConfigSpec,
10784
UpdateTriggerRequest,
85+
UpdateTriggerRequestMnqNatsClientConfig,
86+
UpdateTriggerRequestMnqSqsClientConfig,
87+
UpdateTriggerRequestSqsClientConfig,
10888
UploadURL,
10989
} from './types.gen'

0 commit comments

Comments
 (0)