@@ -15,16 +15,19 @@ import {
1515 DOMAIN_TRANSIENT_STATUSES ,
1616 NAMESPACE_TRANSIENT_STATUSES ,
1717 TOKEN_TRANSIENT_STATUSES ,
18+ TRIGGER_TRANSIENT_STATUSES ,
1819} from './content.gen'
1920import {
2021 marshalCreateContainerRequest ,
2122 marshalCreateCronRequest ,
2223 marshalCreateDomainRequest ,
2324 marshalCreateNamespaceRequest ,
2425 marshalCreateTokenRequest ,
26+ marshalCreateTriggerRequest ,
2527 marshalUpdateContainerRequest ,
2628 marshalUpdateCronRequest ,
2729 marshalUpdateNamespaceRequest ,
30+ marshalUpdateTriggerRequest ,
2831 unmarshalContainer ,
2932 unmarshalCron ,
3033 unmarshalDomain ,
@@ -34,8 +37,10 @@ import {
3437 unmarshalListLogsResponse ,
3538 unmarshalListNamespacesResponse ,
3639 unmarshalListTokensResponse ,
40+ unmarshalListTriggersResponse ,
3741 unmarshalNamespace ,
3842 unmarshalToken ,
43+ unmarshalTrigger ,
3944} from './marshalling.gen'
4045import type {
4146 Container ,
@@ -44,19 +49,22 @@ import type {
4449 CreateDomainRequest ,
4550 CreateNamespaceRequest ,
4651 CreateTokenRequest ,
52+ CreateTriggerRequest ,
4753 Cron ,
4854 DeleteContainerRequest ,
4955 DeleteCronRequest ,
5056 DeleteDomainRequest ,
5157 DeleteNamespaceRequest ,
5258 DeleteTokenRequest ,
59+ DeleteTriggerRequest ,
5360 DeployContainerRequest ,
5461 Domain ,
5562 GetContainerRequest ,
5663 GetCronRequest ,
5764 GetDomainRequest ,
5865 GetNamespaceRequest ,
5966 GetTokenRequest ,
67+ GetTriggerRequest ,
6068 IssueJWTRequest ,
6169 ListContainersRequest ,
6270 ListContainersResponse ,
@@ -70,11 +78,15 @@ import type {
7078 ListNamespacesResponse ,
7179 ListTokensRequest ,
7280 ListTokensResponse ,
81+ ListTriggersRequest ,
82+ ListTriggersResponse ,
7383 Namespace ,
7484 Token ,
85+ Trigger ,
7586 UpdateContainerRequest ,
7687 UpdateCronRequest ,
7788 UpdateNamespaceRequest ,
89+ UpdateTriggerRequest ,
7890} from './types.gen'
7991
8092const jsonContentHeaders = {
@@ -794,4 +806,153 @@ export class API extends ParentAPI {
794806 } ,
795807 unmarshalToken ,
796808 )
809+
810+ /**
811+ * Create a trigger. Create a new trigger for a specified container.
812+ *
813+ * @param request - The request {@link CreateTriggerRequest}
814+ * @returns A Promise of Trigger
815+ */
816+ createTrigger = ( request : Readonly < CreateTriggerRequest > ) =>
817+ this . client . fetch < Trigger > (
818+ {
819+ body : JSON . stringify (
820+ marshalCreateTriggerRequest ( request , this . client . settings ) ,
821+ ) ,
822+ headers : jsonContentHeaders ,
823+ method : 'POST' ,
824+ path : `/containers/v1beta1/regions/${ validatePathParam (
825+ 'region' ,
826+ request . region ?? this . client . settings . defaultRegion ,
827+ ) } /triggers`,
828+ } ,
829+ unmarshalTrigger ,
830+ )
831+
832+ /**
833+ * Get a trigger. Get a trigger with a specified ID.
834+ *
835+ * @param request - The request {@link GetTriggerRequest}
836+ * @returns A Promise of Trigger
837+ */
838+ getTrigger = ( request : Readonly < GetTriggerRequest > ) =>
839+ this . client . fetch < Trigger > (
840+ {
841+ method : 'GET' ,
842+ path : `/containers/v1beta1/regions/${ validatePathParam (
843+ 'region' ,
844+ request . region ?? this . client . settings . defaultRegion ,
845+ ) } /triggers/${ validatePathParam ( 'triggerId' , request . triggerId ) } `,
846+ } ,
847+ unmarshalTrigger ,
848+ )
849+
850+ /**
851+ * Waits for {@link Trigger} to be in a final state.
852+ *
853+ * @param request - The request {@link GetTriggerRequest}
854+ * @param options - The waiting options
855+ * @returns A Promise of Trigger
856+ */
857+ waitForTrigger = (
858+ request : Readonly < GetTriggerRequest > ,
859+ options ?: Readonly < WaitForOptions < Trigger > > ,
860+ ) =>
861+ waitForResource (
862+ options ?. stop ??
863+ ( res =>
864+ Promise . resolve ( ! TRIGGER_TRANSIENT_STATUSES . includes ( res . status ) ) ) ,
865+ this . getTrigger ,
866+ request ,
867+ options ,
868+ )
869+
870+ protected pageOfListTriggers = (
871+ request : Readonly < ListTriggersRequest > = { } ,
872+ ) =>
873+ this . client . fetch < ListTriggersResponse > (
874+ {
875+ method : 'GET' ,
876+ path : `/containers/v1beta1/regions/${ validatePathParam (
877+ 'region' ,
878+ request . region ?? this . client . settings . defaultRegion ,
879+ ) } /triggers`,
880+ urlParams : urlParams (
881+ [ 'order_by' , request . orderBy ?? 'created_at_asc' ] ,
882+ [ 'page' , request . page ] ,
883+ [
884+ 'page_size' ,
885+ request . pageSize ?? this . client . settings . defaultPageSize ,
886+ ] ,
887+ ...Object . entries (
888+ resolveOneOf ( [
889+ {
890+ default : this . client . settings . defaultProjectId ,
891+ param : 'project_id' ,
892+ value : request . projectId ,
893+ } ,
894+ {
895+ param : 'container_id' ,
896+ value : request . containerId ,
897+ } ,
898+ {
899+ param : 'namespace_id' ,
900+ value : request . namespaceId ,
901+ } ,
902+ ] ) ,
903+ ) ,
904+ ) ,
905+ } ,
906+ unmarshalListTriggersResponse ,
907+ )
908+
909+ /**
910+ * List all triggers. List all triggers belonging to a specified Organization
911+ * or Project.
912+ *
913+ * @param request - The request {@link ListTriggersRequest}
914+ * @returns A Promise of ListTriggersResponse
915+ */
916+ listTriggers = ( request : Readonly < ListTriggersRequest > = { } ) =>
917+ enrichForPagination ( 'triggers' , this . pageOfListTriggers , request )
918+
919+ /**
920+ * Update a trigger. Update a trigger with a specified ID.
921+ *
922+ * @param request - The request {@link UpdateTriggerRequest}
923+ * @returns A Promise of Trigger
924+ */
925+ updateTrigger = ( request : Readonly < UpdateTriggerRequest > ) =>
926+ this . client . fetch < Trigger > (
927+ {
928+ body : JSON . stringify (
929+ marshalUpdateTriggerRequest ( request , this . client . settings ) ,
930+ ) ,
931+ headers : jsonContentHeaders ,
932+ method : 'PATCH' ,
933+ path : `/containers/v1beta1/regions/${ validatePathParam (
934+ 'region' ,
935+ request . region ?? this . client . settings . defaultRegion ,
936+ ) } /triggers/${ validatePathParam ( 'triggerId' , request . triggerId ) } `,
937+ } ,
938+ unmarshalTrigger ,
939+ )
940+
941+ /**
942+ * Delete a trigger. Delete a trigger with a specified ID.
943+ *
944+ * @param request - The request {@link DeleteTriggerRequest}
945+ * @returns A Promise of Trigger
946+ */
947+ deleteTrigger = ( request : Readonly < DeleteTriggerRequest > ) =>
948+ this . client . fetch < Trigger > (
949+ {
950+ method : 'DELETE' ,
951+ path : `/containers/v1beta1/regions/${ validatePathParam (
952+ 'region' ,
953+ request . region ?? this . client . settings . defaultRegion ,
954+ ) } /triggers/${ validatePathParam ( 'triggerId' , request . triggerId ) } `,
955+ } ,
956+ unmarshalTrigger ,
957+ )
797958}
0 commit comments