@sealant/sdk-next 0.40.0-next.787 → 0.40.0-next.789
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.
- package/dist/effect/api-client.d.ts +74 -16
- package/dist/effect/operations.d.ts +36 -9
- package/dist/effect/operations.js +6 -2
- package/dist/scope-instances.d.ts +22 -4
- package/dist/scope-instances.js +28 -5
- package/dist/scopes.d.ts +3 -0
- package/dist/scopes.js +3 -2
- package/package.json +3 -3
|
@@ -530,17 +530,20 @@ declare const buildControlPlaneClient: (config: SealantInternalConfig) => Effect
|
|
|
530
530
|
readonly resourceDomains: {
|
|
531
531
|
readonly ensureResourceDomain: HttpApiClient.Client.Method<import("effect/http-api/HttpApiEndpoint").HttpApiEndpoint<"ensureResourceDomain", "POST", "/v1/resource-domains/", never, never, import("effect/Schema").toCodecJson<import("effect/Schema").Struct<{
|
|
532
532
|
readonly key: import("effect/Schema").String;
|
|
533
|
+
readonly ownerKind: import("effect/Schema").optional<import("effect/Schema").Literals<readonly ["project", "organization", "instance"]>>;
|
|
533
534
|
readonly budget: import("effect/Schema").optional<import("effect/Schema").Struct<Record<"cpuMillicores" | "memoryBytes" | "storageBytes", import("effect/Schema").Int>>>;
|
|
534
535
|
}>>, never, import("effect/Schema").toCodecJson<import("effect/Schema").Struct<{
|
|
535
536
|
readonly resourceDomainId: import("effect/Schema").String;
|
|
537
|
+
readonly ownerKind: import("effect/Schema").optional<import("effect/Schema").Literals<readonly ["project", "organization", "instance"]>>;
|
|
536
538
|
readonly key: import("effect/Schema").String;
|
|
537
539
|
readonly createdAt: import("effect/Schema").String;
|
|
538
540
|
readonly created: import("effect/Schema").Boolean;
|
|
539
|
-
}>>, import("effect/Schema").toCodecJson<typeof import("@sealant/api-contracts").ResourceDomainForbiddenError | typeof import("@sealant/api-contracts").ResourceDomainBudgetDiffersError | typeof import("@sealant/api-contracts").ResourceDomainInternalServerError>, import("@sealant/api-contracts").RequestBudget | import("@sealant/api-contracts").RequestRefusal, never>, never, never>;
|
|
541
|
+
}>>, import("effect/Schema").toCodecJson<typeof import("@sealant/api-contracts").ResourceDomainOwnerDiffersError | typeof import("@sealant/api-contracts").ResourceDomainForbiddenError | typeof import("@sealant/api-contracts").ResourceDomainBudgetDiffersError | typeof import("@sealant/api-contracts").ResourceDomainInternalServerError>, import("@sealant/api-contracts").RequestBudget | import("@sealant/api-contracts").RequestRefusal, never>, never, never>;
|
|
540
542
|
readonly getResourceDomain: HttpApiClient.Client.Method<import("effect/http-api/HttpApiEndpoint").HttpApiEndpoint<"getResourceDomain", "GET", "/v1/resource-domains/:resourceDomainId", import("effect/Schema").toCodecStringTree<import("effect/Schema").Struct<{
|
|
541
543
|
readonly resourceDomainId: import("effect/Schema").String;
|
|
542
544
|
}>>, never, never, never, import("effect/Schema").toCodecJson<import("effect/Schema").Struct<{
|
|
543
545
|
readonly resourceDomainId: import("effect/Schema").String;
|
|
546
|
+
readonly ownerKind: import("effect/Schema").optional<import("effect/Schema").Literals<readonly ["project", "organization", "instance"]>>;
|
|
544
547
|
readonly key: import("effect/Schema").String;
|
|
545
548
|
readonly createdAt: import("effect/Schema").String;
|
|
546
549
|
}>>, import("effect/Schema").toCodecJson<typeof import("@sealant/api-contracts").ResourceDomainForbiddenError | typeof import("@sealant/api-contracts").ResourceDomainNotFoundError | typeof import("@sealant/api-contracts").ResourceDomainInternalServerError>, import("@sealant/api-contracts").RequestBudget | import("@sealant/api-contracts").RequestRefusal, never>, never, never>;
|
|
@@ -655,12 +658,17 @@ declare const buildControlPlaneClient: (config: SealantInternalConfig) => Effect
|
|
|
655
658
|
readonly dockerName: import("effect/Schema").String;
|
|
656
659
|
readonly bytes: import("effect/Schema").NullOr<import("effect/Schema").Int>;
|
|
657
660
|
}>>;
|
|
658
|
-
}>>, import("effect/Schema").toCodecJson<typeof import("@sealant/api-contracts").ResourceDomainForbiddenError | typeof import("@sealant/api-contracts").ResourceDomainNotFoundError | typeof import("@sealant/api-contracts").ResourceDomainInternalServerError | typeof import("@sealant/api-contracts").ResourceRuntimeUnsupportedError>, import("@sealant/api-contracts").RequestBudget | import("@sealant/api-contracts").RequestRefusal, never>, never, never>;
|
|
661
|
+
}>>, import("effect/Schema").toCodecJson<typeof import("@sealant/api-contracts").ResourceDomainForbiddenError | typeof import("@sealant/api-contracts").ResourceDomainNotFoundError | typeof import("@sealant/api-contracts").ResourceDomainInternalServerError | typeof import("@sealant/api-contracts").ResourceInstanceSpecRefusedError | typeof import("@sealant/api-contracts").ResourceRuntimeUnsupportedError | typeof import("@sealant/api-contracts").ResourceInstanceBusyError | typeof import("@sealant/api-contracts").ResourceInstanceBudgetError>, import("@sealant/api-contracts").RequestBudget | import("@sealant/api-contracts").RequestRefusal, never>, never, never>;
|
|
659
662
|
readonly archiveResourceInstance: HttpApiClient.Client.Method<import("effect/http-api/HttpApiEndpoint").HttpApiEndpoint<"archiveResourceInstance", "POST", "/v1/resource-domains/:resourceDomainId/instances/:key/archive", import("effect/Schema").toCodecStringTree<import("effect/Schema").Struct<{
|
|
660
663
|
readonly resourceDomainId: import("effect/Schema").String;
|
|
661
664
|
readonly key: import("effect/Schema").brand<import("effect/Schema").String, "ResourceInstanceKey">;
|
|
662
665
|
}>>, never, never, never, import("effect/Schema").toCodecJson<import("effect/Schema").Struct<{
|
|
663
666
|
readonly instance: import("effect/Schema").Struct<{
|
|
667
|
+
readonly endpoint: import("effect/Schema").optional<import("effect/Schema").Struct<{
|
|
668
|
+
readonly host: import("effect/Schema").String;
|
|
669
|
+
readonly port: import("effect/Schema").Int;
|
|
670
|
+
readonly callbackHost: import("effect/Schema").String;
|
|
671
|
+
}>>;
|
|
664
672
|
readonly resourceInstanceId: import("effect/Schema").brand<import("effect/Schema").String, "ResourceInstanceId">;
|
|
665
673
|
readonly key: import("effect/Schema").brand<import("effect/Schema").String, "ResourceInstanceKey">;
|
|
666
674
|
readonly alias: import("effect/Schema").brand<import("effect/Schema").String, "ResourceInstanceAlias">;
|
|
@@ -716,11 +724,16 @@ declare const buildControlPlaneClient: (config: SealantInternalConfig) => Effect
|
|
|
716
724
|
readonly dockerName: import("effect/Schema").String;
|
|
717
725
|
readonly bytes: import("effect/Schema").NullOr<import("effect/Schema").Int>;
|
|
718
726
|
}>>;
|
|
719
|
-
}>>, import("effect/Schema").toCodecJson<typeof import("@sealant/api-contracts").ResourceDomainForbiddenError | typeof import("@sealant/api-contracts").ResourceDomainNotFoundError | typeof import("@sealant/api-contracts").ResourceDomainInternalServerError | typeof import("@sealant/api-contracts").ResourceInstanceNotFoundError | typeof import("@sealant/api-contracts").ResourceRuntimeUnsupportedError>, import("@sealant/api-contracts").RequestBudget | import("@sealant/api-contracts").RequestRefusal, never>, never, never>;
|
|
727
|
+
}>>, import("effect/Schema").toCodecJson<typeof import("@sealant/api-contracts").ResourceDomainForbiddenError | typeof import("@sealant/api-contracts").ResourceDomainNotFoundError | typeof import("@sealant/api-contracts").ResourceDomainInternalServerError | typeof import("@sealant/api-contracts").ResourceInstanceSpecRefusedError | typeof import("@sealant/api-contracts").ResourceInstanceNotFoundError | typeof import("@sealant/api-contracts").ResourceRuntimeUnsupportedError | typeof import("@sealant/api-contracts").ResourceInstanceBusyError | typeof import("@sealant/api-contracts").ResourceInstanceBudgetError>, import("@sealant/api-contracts").RequestBudget | import("@sealant/api-contracts").RequestRefusal, never>, never, never>;
|
|
720
728
|
readonly getResourceInstance: HttpApiClient.Client.Method<import("effect/http-api/HttpApiEndpoint").HttpApiEndpoint<"getResourceInstance", "GET", "/v1/resource-domains/:resourceDomainId/instances/:key", import("effect/Schema").toCodecStringTree<import("effect/Schema").Struct<{
|
|
721
729
|
readonly resourceDomainId: import("effect/Schema").String;
|
|
722
730
|
readonly key: import("effect/Schema").brand<import("effect/Schema").String, "ResourceInstanceKey">;
|
|
723
731
|
}>>, never, never, never, import("effect/Schema").toCodecJson<import("effect/Schema").Struct<{
|
|
732
|
+
readonly endpoint: import("effect/Schema").optional<import("effect/Schema").Struct<{
|
|
733
|
+
readonly host: import("effect/Schema").String;
|
|
734
|
+
readonly port: import("effect/Schema").Int;
|
|
735
|
+
readonly callbackHost: import("effect/Schema").String;
|
|
736
|
+
}>>;
|
|
724
737
|
readonly resourceInstanceId: import("effect/Schema").brand<import("effect/Schema").String, "ResourceInstanceId">;
|
|
725
738
|
readonly key: import("effect/Schema").brand<import("effect/Schema").String, "ResourceInstanceKey">;
|
|
726
739
|
readonly alias: import("effect/Schema").brand<import("effect/Schema").String, "ResourceInstanceAlias">;
|
|
@@ -769,7 +782,7 @@ declare const buildControlPlaneClient: (config: SealantInternalConfig) => Effect
|
|
|
769
782
|
readonly name: import("effect/Schema").String;
|
|
770
783
|
readonly dockerName: import("effect/Schema").String;
|
|
771
784
|
}>>;
|
|
772
|
-
}>>, import("effect/Schema").toCodecJson<typeof import("@sealant/api-contracts").ResourceDomainForbiddenError | typeof import("@sealant/api-contracts").ResourceDomainNotFoundError | typeof import("@sealant/api-contracts").ResourceDomainInternalServerError | typeof import("@sealant/api-contracts").ResourceInstanceNotFoundError>, import("@sealant/api-contracts").RequestBudget | import("@sealant/api-contracts").RequestRefusal, never>, never, never>;
|
|
785
|
+
}>>, import("effect/Schema").toCodecJson<typeof import("@sealant/api-contracts").ResourceDomainForbiddenError | typeof import("@sealant/api-contracts").ResourceDomainNotFoundError | typeof import("@sealant/api-contracts").ResourceDomainInternalServerError | typeof import("@sealant/api-contracts").ResourceInstanceSpecRefusedError | typeof import("@sealant/api-contracts").ResourceInstanceNotFoundError | typeof import("@sealant/api-contracts").ResourceRuntimeUnsupportedError | typeof import("@sealant/api-contracts").ResourceInstanceBusyError | typeof import("@sealant/api-contracts").ResourceInstanceBudgetError>, import("@sealant/api-contracts").RequestBudget | import("@sealant/api-contracts").RequestRefusal, never>, never, never>;
|
|
773
786
|
readonly linkResourceWorkspace: HttpApiClient.Client.Method<import("effect/http-api/HttpApiEndpoint").HttpApiEndpoint<"linkResourceWorkspace", "PUT", "/v1/resource-domains/:resourceDomainId/workspace-links/:workspaceId", import("effect/Schema").toCodecStringTree<import("effect/Schema").Struct<{
|
|
774
787
|
readonly resourceDomainId: import("effect/Schema").String;
|
|
775
788
|
readonly workspaceId: import("effect/Schema").String;
|
|
@@ -781,13 +794,18 @@ declare const buildControlPlaneClient: (config: SealantInternalConfig) => Effect
|
|
|
781
794
|
readonly worktreeKey: import("effect/Schema").brand<import("effect/Schema").String, "ResourceWorktreeKey">;
|
|
782
795
|
readonly aliases: import("effect/Schema").NullOr<import("effect/Schema").$Record<import("effect/Schema").brand<import("effect/Schema").String, "ResourceInstanceAlias">, import("effect/Schema").Literals<readonly ["project", "worktree"]>>>;
|
|
783
796
|
readonly attachedExecutors: import("effect/Schema").Int;
|
|
784
|
-
}>>, import("effect/Schema").toCodecJson<typeof import("@sealant/api-contracts").ResourceDomainForbiddenError | typeof import("@sealant/api-contracts").ResourceDomainNotFoundError | typeof import("@sealant/api-contracts").ResourceDomainInternalServerError | typeof import("@sealant/api-contracts").ResourceRuntimeUnsupportedError | typeof import("@sealant/api-contracts").ResourceDomainNotActiveError | typeof import("@sealant/api-contracts").ResourceWorkspaceNotFoundError | typeof import("@sealant/api-contracts").ResourceWorkspaceLinkedElsewhereError>, import("@sealant/api-contracts").RequestBudget | import("@sealant/api-contracts").RequestRefusal, never>, never, never>;
|
|
797
|
+
}>>, import("effect/Schema").toCodecJson<typeof import("@sealant/api-contracts").ResourceDomainForbiddenError | typeof import("@sealant/api-contracts").ResourceDomainNotFoundError | typeof import("@sealant/api-contracts").ResourceDomainInternalServerError | typeof import("@sealant/api-contracts").ResourceInstanceSpecRefusedError | typeof import("@sealant/api-contracts").ResourceRuntimeUnsupportedError | typeof import("@sealant/api-contracts").ResourceDomainNotActiveError | typeof import("@sealant/api-contracts").ResourceWorkspaceNotFoundError | typeof import("@sealant/api-contracts").ResourceWorkspaceLinkedElsewhereError | typeof import("@sealant/api-contracts").ResourceInstanceBusyError | typeof import("@sealant/api-contracts").ResourceInstanceBudgetError>, import("@sealant/api-contracts").RequestBudget | import("@sealant/api-contracts").RequestRefusal, never>, never, never>;
|
|
785
798
|
readonly listResourceInstances: HttpApiClient.Client.Method<import("effect/http-api/HttpApiEndpoint").HttpApiEndpoint<"listResourceInstances", "GET", "/v1/resource-domains/:resourceDomainId/instances", import("effect/Schema").toCodecStringTree<import("effect/Schema").Struct<{
|
|
786
799
|
readonly resourceDomainId: import("effect/Schema").String;
|
|
787
800
|
}>>, import("effect/Schema").toCodecStringTree<import("effect/Schema").Struct<{
|
|
788
801
|
readonly archived: import("effect/Schema").optional<import("effect/Schema").Literals<readonly ["true", "false"]>>;
|
|
789
802
|
}>>, never, never, import("effect/Schema").toCodecJson<import("effect/Schema").Struct<{
|
|
790
803
|
readonly items: import("effect/Schema").$Array<import("effect/Schema").Struct<{
|
|
804
|
+
readonly endpoint: import("effect/Schema").optional<import("effect/Schema").Struct<{
|
|
805
|
+
readonly host: import("effect/Schema").String;
|
|
806
|
+
readonly port: import("effect/Schema").Int;
|
|
807
|
+
readonly callbackHost: import("effect/Schema").String;
|
|
808
|
+
}>>;
|
|
791
809
|
readonly resourceInstanceId: import("effect/Schema").brand<import("effect/Schema").String, "ResourceInstanceId">;
|
|
792
810
|
readonly key: import("effect/Schema").brand<import("effect/Schema").String, "ResourceInstanceKey">;
|
|
793
811
|
readonly alias: import("effect/Schema").brand<import("effect/Schema").String, "ResourceInstanceAlias">;
|
|
@@ -837,13 +855,18 @@ declare const buildControlPlaneClient: (config: SealantInternalConfig) => Effect
|
|
|
837
855
|
readonly dockerName: import("effect/Schema").String;
|
|
838
856
|
}>>;
|
|
839
857
|
}>>;
|
|
840
|
-
}>>, import("effect/Schema").toCodecJson<typeof import("@sealant/api-contracts").ResourceDomainForbiddenError | typeof import("@sealant/api-contracts").ResourceDomainNotFoundError | typeof import("@sealant/api-contracts").ResourceDomainInternalServerError>, import("@sealant/api-contracts").RequestBudget | import("@sealant/api-contracts").RequestRefusal, never>, never, never>;
|
|
858
|
+
}>>, import("effect/Schema").toCodecJson<typeof import("@sealant/api-contracts").ResourceDomainForbiddenError | typeof import("@sealant/api-contracts").ResourceDomainNotFoundError | typeof import("@sealant/api-contracts").ResourceDomainInternalServerError | typeof import("@sealant/api-contracts").ResourceInstanceSpecRefusedError | typeof import("@sealant/api-contracts").ResourceRuntimeUnsupportedError | typeof import("@sealant/api-contracts").ResourceInstanceBusyError | typeof import("@sealant/api-contracts").ResourceInstanceBudgetError>, import("@sealant/api-contracts").RequestBudget | import("@sealant/api-contracts").RequestRefusal, never>, never, never>;
|
|
841
859
|
readonly stopResourceInstance: HttpApiClient.Client.Method<import("effect/http-api/HttpApiEndpoint").HttpApiEndpoint<"stopResourceInstance", "POST", "/v1/resource-domains/:resourceDomainId/instances/:key/stop", import("effect/Schema").toCodecStringTree<import("effect/Schema").Struct<{
|
|
842
860
|
readonly resourceDomainId: import("effect/Schema").String;
|
|
843
861
|
readonly key: import("effect/Schema").brand<import("effect/Schema").String, "ResourceInstanceKey">;
|
|
844
862
|
}>>, never, import("effect/Schema").toCodecJson<import("effect/Schema").Struct<{
|
|
845
863
|
readonly by: import("effect/Schema").String;
|
|
846
864
|
}>>, never, import("effect/Schema").toCodecJson<import("effect/Schema").Struct<{
|
|
865
|
+
readonly endpoint: import("effect/Schema").optional<import("effect/Schema").Struct<{
|
|
866
|
+
readonly host: import("effect/Schema").String;
|
|
867
|
+
readonly port: import("effect/Schema").Int;
|
|
868
|
+
readonly callbackHost: import("effect/Schema").String;
|
|
869
|
+
}>>;
|
|
847
870
|
readonly resourceInstanceId: import("effect/Schema").brand<import("effect/Schema").String, "ResourceInstanceId">;
|
|
848
871
|
readonly key: import("effect/Schema").brand<import("effect/Schema").String, "ResourceInstanceKey">;
|
|
849
872
|
readonly alias: import("effect/Schema").brand<import("effect/Schema").String, "ResourceInstanceAlias">;
|
|
@@ -892,14 +915,20 @@ declare const buildControlPlaneClient: (config: SealantInternalConfig) => Effect
|
|
|
892
915
|
readonly name: import("effect/Schema").String;
|
|
893
916
|
readonly dockerName: import("effect/Schema").String;
|
|
894
917
|
}>>;
|
|
895
|
-
}>>, import("effect/Schema").toCodecJson<typeof import("@sealant/api-contracts").ResourceDomainForbiddenError | typeof import("@sealant/api-contracts").ResourceDomainNotFoundError | typeof import("@sealant/api-contracts").ResourceDomainInternalServerError | typeof import("@sealant/api-contracts").ResourceInstanceNotFoundError | typeof import("@sealant/api-contracts").ResourceRuntimeUnsupportedError | typeof import("@sealant/api-contracts").ResourceInstanceArchivedError>, import("@sealant/api-contracts").RequestBudget | import("@sealant/api-contracts").RequestRefusal, never>, never, never>;
|
|
918
|
+
}>>, import("effect/Schema").toCodecJson<typeof import("@sealant/api-contracts").ResourceDomainForbiddenError | typeof import("@sealant/api-contracts").ResourceDomainNotFoundError | typeof import("@sealant/api-contracts").ResourceDomainInternalServerError | typeof import("@sealant/api-contracts").ResourceInstanceSpecRefusedError | typeof import("@sealant/api-contracts").ResourceInstanceNotFoundError | typeof import("@sealant/api-contracts").ResourceRuntimeUnsupportedError | typeof import("@sealant/api-contracts").ResourceInstanceArchivedError | typeof import("@sealant/api-contracts").ResourceInstanceBusyError | typeof import("@sealant/api-contracts").ResourceInstanceBudgetError>, import("@sealant/api-contracts").RequestBudget | import("@sealant/api-contracts").RequestRefusal, never>, never, never>;
|
|
896
919
|
readonly upResourceInstance: HttpApiClient.Client.Method<import("effect/http-api/HttpApiEndpoint").HttpApiEndpoint<"upResourceInstance", "POST", "/v1/resource-domains/:resourceDomainId/instances/:key/up", import("effect/Schema").toCodecStringTree<import("effect/Schema").Struct<{
|
|
897
920
|
readonly resourceDomainId: import("effect/Schema").String;
|
|
898
921
|
readonly key: import("effect/Schema").brand<import("effect/Schema").String, "ResourceInstanceKey">;
|
|
899
922
|
}>>, never, import("effect/Schema").toCodecJson<import("effect/Schema").Struct<{
|
|
900
923
|
readonly spec: import("effect/Schema").$Record<import("effect/Schema").String, import("effect/Schema").Unknown>;
|
|
901
924
|
readonly cause: import("effect/Schema").Literals<readonly ["use", "person"]>;
|
|
925
|
+
readonly secretEnv: import("effect/Schema").optional<import("effect/Schema").$Record<import("effect/Schema").String, import("effect/Schema").String>>;
|
|
902
926
|
}>>, never, import("effect/Schema").toCodecJson<import("effect/Schema").Struct<{
|
|
927
|
+
readonly endpoint: import("effect/Schema").optional<import("effect/Schema").Struct<{
|
|
928
|
+
readonly host: import("effect/Schema").String;
|
|
929
|
+
readonly port: import("effect/Schema").Int;
|
|
930
|
+
readonly callbackHost: import("effect/Schema").String;
|
|
931
|
+
}>>;
|
|
903
932
|
readonly resourceInstanceId: import("effect/Schema").brand<import("effect/Schema").String, "ResourceInstanceId">;
|
|
904
933
|
readonly key: import("effect/Schema").brand<import("effect/Schema").String, "ResourceInstanceKey">;
|
|
905
934
|
readonly alias: import("effect/Schema").brand<import("effect/Schema").String, "ResourceInstanceAlias">;
|
|
@@ -948,7 +977,7 @@ declare const buildControlPlaneClient: (config: SealantInternalConfig) => Effect
|
|
|
948
977
|
readonly name: import("effect/Schema").String;
|
|
949
978
|
readonly dockerName: import("effect/Schema").String;
|
|
950
979
|
}>>;
|
|
951
|
-
}>>, import("effect/Schema").toCodecJson<typeof import("@sealant/api-contracts").ResourceDomainForbiddenError | typeof import("@sealant/api-contracts").ResourceDomainNotFoundError | typeof import("@sealant/api-contracts").ResourceDomainInternalServerError | typeof import("@sealant/api-contracts").ResourceInstanceSpecRefusedError | typeof import("@sealant/api-contracts").ResourceRuntimeUnsupportedError | typeof import("@sealant/api-contracts").ResourceInstanceArchivedError | typeof import("@sealant/api-contracts").ResourceInstanceAliasTakenError | typeof import("@sealant/api-contracts").ResourceDomainNotActiveError>, import("@sealant/api-contracts").RequestBudget | import("@sealant/api-contracts").RequestRefusal, never>, never, never>;
|
|
980
|
+
}>>, import("effect/Schema").toCodecJson<typeof import("@sealant/api-contracts").ResourceDomainForbiddenError | typeof import("@sealant/api-contracts").ResourceDomainNotFoundError | typeof import("@sealant/api-contracts").ResourceDomainInternalServerError | typeof import("@sealant/api-contracts").ResourceInstanceSpecRefusedError | typeof import("@sealant/api-contracts").ResourceRuntimeUnsupportedError | typeof import("@sealant/api-contracts").ResourceInstanceArchivedError | typeof import("@sealant/api-contracts").ResourceInstanceAliasTakenError | typeof import("@sealant/api-contracts").ResourceDomainNotActiveError | typeof import("@sealant/api-contracts").ResourceInstanceBusyError | typeof import("@sealant/api-contracts").ResourceInstanceBudgetError>, import("@sealant/api-contracts").RequestBudget | import("@sealant/api-contracts").RequestRefusal, never>, never, never>;
|
|
952
981
|
};
|
|
953
982
|
readonly runs: {
|
|
954
983
|
readonly createRun: HttpApiClient.Client.Method<import("effect/http-api/HttpApiEndpoint").HttpApiEndpoint<"createRun", "POST", "/v1/runs/", never, never, import("effect/Schema").toCodecJson<import("effect/Schema").Struct<{
|
|
@@ -2898,17 +2927,20 @@ declare const SealantApiClient_base: Context.ServiceClass<SealantApiClient, "@se
|
|
|
2898
2927
|
readonly resourceDomains: {
|
|
2899
2928
|
readonly ensureResourceDomain: HttpApiClient.Client.Method<import("effect/http-api/HttpApiEndpoint").HttpApiEndpoint<"ensureResourceDomain", "POST", "/v1/resource-domains/", never, never, import("effect/Schema").toCodecJson<import("effect/Schema").Struct<{
|
|
2900
2929
|
readonly key: import("effect/Schema").String;
|
|
2930
|
+
readonly ownerKind: import("effect/Schema").optional<import("effect/Schema").Literals<readonly ["project", "organization", "instance"]>>;
|
|
2901
2931
|
readonly budget: import("effect/Schema").optional<import("effect/Schema").Struct<Record<"cpuMillicores" | "memoryBytes" | "storageBytes", import("effect/Schema").Int>>>;
|
|
2902
2932
|
}>>, never, import("effect/Schema").toCodecJson<import("effect/Schema").Struct<{
|
|
2903
2933
|
readonly resourceDomainId: import("effect/Schema").String;
|
|
2934
|
+
readonly ownerKind: import("effect/Schema").optional<import("effect/Schema").Literals<readonly ["project", "organization", "instance"]>>;
|
|
2904
2935
|
readonly key: import("effect/Schema").String;
|
|
2905
2936
|
readonly createdAt: import("effect/Schema").String;
|
|
2906
2937
|
readonly created: import("effect/Schema").Boolean;
|
|
2907
|
-
}>>, import("effect/Schema").toCodecJson<typeof import("@sealant/api-contracts").ResourceDomainForbiddenError | typeof import("@sealant/api-contracts").ResourceDomainBudgetDiffersError | typeof import("@sealant/api-contracts").ResourceDomainInternalServerError>, import("@sealant/api-contracts").RequestBudget | import("@sealant/api-contracts").RequestRefusal, never>, never, never>;
|
|
2938
|
+
}>>, import("effect/Schema").toCodecJson<typeof import("@sealant/api-contracts").ResourceDomainOwnerDiffersError | typeof import("@sealant/api-contracts").ResourceDomainForbiddenError | typeof import("@sealant/api-contracts").ResourceDomainBudgetDiffersError | typeof import("@sealant/api-contracts").ResourceDomainInternalServerError>, import("@sealant/api-contracts").RequestBudget | import("@sealant/api-contracts").RequestRefusal, never>, never, never>;
|
|
2908
2939
|
readonly getResourceDomain: HttpApiClient.Client.Method<import("effect/http-api/HttpApiEndpoint").HttpApiEndpoint<"getResourceDomain", "GET", "/v1/resource-domains/:resourceDomainId", import("effect/Schema").toCodecStringTree<import("effect/Schema").Struct<{
|
|
2909
2940
|
readonly resourceDomainId: import("effect/Schema").String;
|
|
2910
2941
|
}>>, never, never, never, import("effect/Schema").toCodecJson<import("effect/Schema").Struct<{
|
|
2911
2942
|
readonly resourceDomainId: import("effect/Schema").String;
|
|
2943
|
+
readonly ownerKind: import("effect/Schema").optional<import("effect/Schema").Literals<readonly ["project", "organization", "instance"]>>;
|
|
2912
2944
|
readonly key: import("effect/Schema").String;
|
|
2913
2945
|
readonly createdAt: import("effect/Schema").String;
|
|
2914
2946
|
}>>, import("effect/Schema").toCodecJson<typeof import("@sealant/api-contracts").ResourceDomainForbiddenError | typeof import("@sealant/api-contracts").ResourceDomainNotFoundError | typeof import("@sealant/api-contracts").ResourceDomainInternalServerError>, import("@sealant/api-contracts").RequestBudget | import("@sealant/api-contracts").RequestRefusal, never>, never, never>;
|
|
@@ -3023,12 +3055,17 @@ declare const SealantApiClient_base: Context.ServiceClass<SealantApiClient, "@se
|
|
|
3023
3055
|
readonly dockerName: import("effect/Schema").String;
|
|
3024
3056
|
readonly bytes: import("effect/Schema").NullOr<import("effect/Schema").Int>;
|
|
3025
3057
|
}>>;
|
|
3026
|
-
}>>, import("effect/Schema").toCodecJson<typeof import("@sealant/api-contracts").ResourceDomainForbiddenError | typeof import("@sealant/api-contracts").ResourceDomainNotFoundError | typeof import("@sealant/api-contracts").ResourceDomainInternalServerError | typeof import("@sealant/api-contracts").ResourceRuntimeUnsupportedError>, import("@sealant/api-contracts").RequestBudget | import("@sealant/api-contracts").RequestRefusal, never>, never, never>;
|
|
3058
|
+
}>>, import("effect/Schema").toCodecJson<typeof import("@sealant/api-contracts").ResourceDomainForbiddenError | typeof import("@sealant/api-contracts").ResourceDomainNotFoundError | typeof import("@sealant/api-contracts").ResourceDomainInternalServerError | typeof import("@sealant/api-contracts").ResourceInstanceSpecRefusedError | typeof import("@sealant/api-contracts").ResourceRuntimeUnsupportedError | typeof import("@sealant/api-contracts").ResourceInstanceBusyError | typeof import("@sealant/api-contracts").ResourceInstanceBudgetError>, import("@sealant/api-contracts").RequestBudget | import("@sealant/api-contracts").RequestRefusal, never>, never, never>;
|
|
3027
3059
|
readonly archiveResourceInstance: HttpApiClient.Client.Method<import("effect/http-api/HttpApiEndpoint").HttpApiEndpoint<"archiveResourceInstance", "POST", "/v1/resource-domains/:resourceDomainId/instances/:key/archive", import("effect/Schema").toCodecStringTree<import("effect/Schema").Struct<{
|
|
3028
3060
|
readonly resourceDomainId: import("effect/Schema").String;
|
|
3029
3061
|
readonly key: import("effect/Schema").brand<import("effect/Schema").String, "ResourceInstanceKey">;
|
|
3030
3062
|
}>>, never, never, never, import("effect/Schema").toCodecJson<import("effect/Schema").Struct<{
|
|
3031
3063
|
readonly instance: import("effect/Schema").Struct<{
|
|
3064
|
+
readonly endpoint: import("effect/Schema").optional<import("effect/Schema").Struct<{
|
|
3065
|
+
readonly host: import("effect/Schema").String;
|
|
3066
|
+
readonly port: import("effect/Schema").Int;
|
|
3067
|
+
readonly callbackHost: import("effect/Schema").String;
|
|
3068
|
+
}>>;
|
|
3032
3069
|
readonly resourceInstanceId: import("effect/Schema").brand<import("effect/Schema").String, "ResourceInstanceId">;
|
|
3033
3070
|
readonly key: import("effect/Schema").brand<import("effect/Schema").String, "ResourceInstanceKey">;
|
|
3034
3071
|
readonly alias: import("effect/Schema").brand<import("effect/Schema").String, "ResourceInstanceAlias">;
|
|
@@ -3084,11 +3121,16 @@ declare const SealantApiClient_base: Context.ServiceClass<SealantApiClient, "@se
|
|
|
3084
3121
|
readonly dockerName: import("effect/Schema").String;
|
|
3085
3122
|
readonly bytes: import("effect/Schema").NullOr<import("effect/Schema").Int>;
|
|
3086
3123
|
}>>;
|
|
3087
|
-
}>>, import("effect/Schema").toCodecJson<typeof import("@sealant/api-contracts").ResourceDomainForbiddenError | typeof import("@sealant/api-contracts").ResourceDomainNotFoundError | typeof import("@sealant/api-contracts").ResourceDomainInternalServerError | typeof import("@sealant/api-contracts").ResourceInstanceNotFoundError | typeof import("@sealant/api-contracts").ResourceRuntimeUnsupportedError>, import("@sealant/api-contracts").RequestBudget | import("@sealant/api-contracts").RequestRefusal, never>, never, never>;
|
|
3124
|
+
}>>, import("effect/Schema").toCodecJson<typeof import("@sealant/api-contracts").ResourceDomainForbiddenError | typeof import("@sealant/api-contracts").ResourceDomainNotFoundError | typeof import("@sealant/api-contracts").ResourceDomainInternalServerError | typeof import("@sealant/api-contracts").ResourceInstanceSpecRefusedError | typeof import("@sealant/api-contracts").ResourceInstanceNotFoundError | typeof import("@sealant/api-contracts").ResourceRuntimeUnsupportedError | typeof import("@sealant/api-contracts").ResourceInstanceBusyError | typeof import("@sealant/api-contracts").ResourceInstanceBudgetError>, import("@sealant/api-contracts").RequestBudget | import("@sealant/api-contracts").RequestRefusal, never>, never, never>;
|
|
3088
3125
|
readonly getResourceInstance: HttpApiClient.Client.Method<import("effect/http-api/HttpApiEndpoint").HttpApiEndpoint<"getResourceInstance", "GET", "/v1/resource-domains/:resourceDomainId/instances/:key", import("effect/Schema").toCodecStringTree<import("effect/Schema").Struct<{
|
|
3089
3126
|
readonly resourceDomainId: import("effect/Schema").String;
|
|
3090
3127
|
readonly key: import("effect/Schema").brand<import("effect/Schema").String, "ResourceInstanceKey">;
|
|
3091
3128
|
}>>, never, never, never, import("effect/Schema").toCodecJson<import("effect/Schema").Struct<{
|
|
3129
|
+
readonly endpoint: import("effect/Schema").optional<import("effect/Schema").Struct<{
|
|
3130
|
+
readonly host: import("effect/Schema").String;
|
|
3131
|
+
readonly port: import("effect/Schema").Int;
|
|
3132
|
+
readonly callbackHost: import("effect/Schema").String;
|
|
3133
|
+
}>>;
|
|
3092
3134
|
readonly resourceInstanceId: import("effect/Schema").brand<import("effect/Schema").String, "ResourceInstanceId">;
|
|
3093
3135
|
readonly key: import("effect/Schema").brand<import("effect/Schema").String, "ResourceInstanceKey">;
|
|
3094
3136
|
readonly alias: import("effect/Schema").brand<import("effect/Schema").String, "ResourceInstanceAlias">;
|
|
@@ -3137,7 +3179,7 @@ declare const SealantApiClient_base: Context.ServiceClass<SealantApiClient, "@se
|
|
|
3137
3179
|
readonly name: import("effect/Schema").String;
|
|
3138
3180
|
readonly dockerName: import("effect/Schema").String;
|
|
3139
3181
|
}>>;
|
|
3140
|
-
}>>, import("effect/Schema").toCodecJson<typeof import("@sealant/api-contracts").ResourceDomainForbiddenError | typeof import("@sealant/api-contracts").ResourceDomainNotFoundError | typeof import("@sealant/api-contracts").ResourceDomainInternalServerError | typeof import("@sealant/api-contracts").ResourceInstanceNotFoundError>, import("@sealant/api-contracts").RequestBudget | import("@sealant/api-contracts").RequestRefusal, never>, never, never>;
|
|
3182
|
+
}>>, import("effect/Schema").toCodecJson<typeof import("@sealant/api-contracts").ResourceDomainForbiddenError | typeof import("@sealant/api-contracts").ResourceDomainNotFoundError | typeof import("@sealant/api-contracts").ResourceDomainInternalServerError | typeof import("@sealant/api-contracts").ResourceInstanceSpecRefusedError | typeof import("@sealant/api-contracts").ResourceInstanceNotFoundError | typeof import("@sealant/api-contracts").ResourceRuntimeUnsupportedError | typeof import("@sealant/api-contracts").ResourceInstanceBusyError | typeof import("@sealant/api-contracts").ResourceInstanceBudgetError>, import("@sealant/api-contracts").RequestBudget | import("@sealant/api-contracts").RequestRefusal, never>, never, never>;
|
|
3141
3183
|
readonly linkResourceWorkspace: HttpApiClient.Client.Method<import("effect/http-api/HttpApiEndpoint").HttpApiEndpoint<"linkResourceWorkspace", "PUT", "/v1/resource-domains/:resourceDomainId/workspace-links/:workspaceId", import("effect/Schema").toCodecStringTree<import("effect/Schema").Struct<{
|
|
3142
3184
|
readonly resourceDomainId: import("effect/Schema").String;
|
|
3143
3185
|
readonly workspaceId: import("effect/Schema").String;
|
|
@@ -3149,13 +3191,18 @@ declare const SealantApiClient_base: Context.ServiceClass<SealantApiClient, "@se
|
|
|
3149
3191
|
readonly worktreeKey: import("effect/Schema").brand<import("effect/Schema").String, "ResourceWorktreeKey">;
|
|
3150
3192
|
readonly aliases: import("effect/Schema").NullOr<import("effect/Schema").$Record<import("effect/Schema").brand<import("effect/Schema").String, "ResourceInstanceAlias">, import("effect/Schema").Literals<readonly ["project", "worktree"]>>>;
|
|
3151
3193
|
readonly attachedExecutors: import("effect/Schema").Int;
|
|
3152
|
-
}>>, import("effect/Schema").toCodecJson<typeof import("@sealant/api-contracts").ResourceDomainForbiddenError | typeof import("@sealant/api-contracts").ResourceDomainNotFoundError | typeof import("@sealant/api-contracts").ResourceDomainInternalServerError | typeof import("@sealant/api-contracts").ResourceRuntimeUnsupportedError | typeof import("@sealant/api-contracts").ResourceDomainNotActiveError | typeof import("@sealant/api-contracts").ResourceWorkspaceNotFoundError | typeof import("@sealant/api-contracts").ResourceWorkspaceLinkedElsewhereError>, import("@sealant/api-contracts").RequestBudget | import("@sealant/api-contracts").RequestRefusal, never>, never, never>;
|
|
3194
|
+
}>>, import("effect/Schema").toCodecJson<typeof import("@sealant/api-contracts").ResourceDomainForbiddenError | typeof import("@sealant/api-contracts").ResourceDomainNotFoundError | typeof import("@sealant/api-contracts").ResourceDomainInternalServerError | typeof import("@sealant/api-contracts").ResourceInstanceSpecRefusedError | typeof import("@sealant/api-contracts").ResourceRuntimeUnsupportedError | typeof import("@sealant/api-contracts").ResourceDomainNotActiveError | typeof import("@sealant/api-contracts").ResourceWorkspaceNotFoundError | typeof import("@sealant/api-contracts").ResourceWorkspaceLinkedElsewhereError | typeof import("@sealant/api-contracts").ResourceInstanceBusyError | typeof import("@sealant/api-contracts").ResourceInstanceBudgetError>, import("@sealant/api-contracts").RequestBudget | import("@sealant/api-contracts").RequestRefusal, never>, never, never>;
|
|
3153
3195
|
readonly listResourceInstances: HttpApiClient.Client.Method<import("effect/http-api/HttpApiEndpoint").HttpApiEndpoint<"listResourceInstances", "GET", "/v1/resource-domains/:resourceDomainId/instances", import("effect/Schema").toCodecStringTree<import("effect/Schema").Struct<{
|
|
3154
3196
|
readonly resourceDomainId: import("effect/Schema").String;
|
|
3155
3197
|
}>>, import("effect/Schema").toCodecStringTree<import("effect/Schema").Struct<{
|
|
3156
3198
|
readonly archived: import("effect/Schema").optional<import("effect/Schema").Literals<readonly ["true", "false"]>>;
|
|
3157
3199
|
}>>, never, never, import("effect/Schema").toCodecJson<import("effect/Schema").Struct<{
|
|
3158
3200
|
readonly items: import("effect/Schema").$Array<import("effect/Schema").Struct<{
|
|
3201
|
+
readonly endpoint: import("effect/Schema").optional<import("effect/Schema").Struct<{
|
|
3202
|
+
readonly host: import("effect/Schema").String;
|
|
3203
|
+
readonly port: import("effect/Schema").Int;
|
|
3204
|
+
readonly callbackHost: import("effect/Schema").String;
|
|
3205
|
+
}>>;
|
|
3159
3206
|
readonly resourceInstanceId: import("effect/Schema").brand<import("effect/Schema").String, "ResourceInstanceId">;
|
|
3160
3207
|
readonly key: import("effect/Schema").brand<import("effect/Schema").String, "ResourceInstanceKey">;
|
|
3161
3208
|
readonly alias: import("effect/Schema").brand<import("effect/Schema").String, "ResourceInstanceAlias">;
|
|
@@ -3205,13 +3252,18 @@ declare const SealantApiClient_base: Context.ServiceClass<SealantApiClient, "@se
|
|
|
3205
3252
|
readonly dockerName: import("effect/Schema").String;
|
|
3206
3253
|
}>>;
|
|
3207
3254
|
}>>;
|
|
3208
|
-
}>>, import("effect/Schema").toCodecJson<typeof import("@sealant/api-contracts").ResourceDomainForbiddenError | typeof import("@sealant/api-contracts").ResourceDomainNotFoundError | typeof import("@sealant/api-contracts").ResourceDomainInternalServerError>, import("@sealant/api-contracts").RequestBudget | import("@sealant/api-contracts").RequestRefusal, never>, never, never>;
|
|
3255
|
+
}>>, import("effect/Schema").toCodecJson<typeof import("@sealant/api-contracts").ResourceDomainForbiddenError | typeof import("@sealant/api-contracts").ResourceDomainNotFoundError | typeof import("@sealant/api-contracts").ResourceDomainInternalServerError | typeof import("@sealant/api-contracts").ResourceInstanceSpecRefusedError | typeof import("@sealant/api-contracts").ResourceRuntimeUnsupportedError | typeof import("@sealant/api-contracts").ResourceInstanceBusyError | typeof import("@sealant/api-contracts").ResourceInstanceBudgetError>, import("@sealant/api-contracts").RequestBudget | import("@sealant/api-contracts").RequestRefusal, never>, never, never>;
|
|
3209
3256
|
readonly stopResourceInstance: HttpApiClient.Client.Method<import("effect/http-api/HttpApiEndpoint").HttpApiEndpoint<"stopResourceInstance", "POST", "/v1/resource-domains/:resourceDomainId/instances/:key/stop", import("effect/Schema").toCodecStringTree<import("effect/Schema").Struct<{
|
|
3210
3257
|
readonly resourceDomainId: import("effect/Schema").String;
|
|
3211
3258
|
readonly key: import("effect/Schema").brand<import("effect/Schema").String, "ResourceInstanceKey">;
|
|
3212
3259
|
}>>, never, import("effect/Schema").toCodecJson<import("effect/Schema").Struct<{
|
|
3213
3260
|
readonly by: import("effect/Schema").String;
|
|
3214
3261
|
}>>, never, import("effect/Schema").toCodecJson<import("effect/Schema").Struct<{
|
|
3262
|
+
readonly endpoint: import("effect/Schema").optional<import("effect/Schema").Struct<{
|
|
3263
|
+
readonly host: import("effect/Schema").String;
|
|
3264
|
+
readonly port: import("effect/Schema").Int;
|
|
3265
|
+
readonly callbackHost: import("effect/Schema").String;
|
|
3266
|
+
}>>;
|
|
3215
3267
|
readonly resourceInstanceId: import("effect/Schema").brand<import("effect/Schema").String, "ResourceInstanceId">;
|
|
3216
3268
|
readonly key: import("effect/Schema").brand<import("effect/Schema").String, "ResourceInstanceKey">;
|
|
3217
3269
|
readonly alias: import("effect/Schema").brand<import("effect/Schema").String, "ResourceInstanceAlias">;
|
|
@@ -3260,14 +3312,20 @@ declare const SealantApiClient_base: Context.ServiceClass<SealantApiClient, "@se
|
|
|
3260
3312
|
readonly name: import("effect/Schema").String;
|
|
3261
3313
|
readonly dockerName: import("effect/Schema").String;
|
|
3262
3314
|
}>>;
|
|
3263
|
-
}>>, import("effect/Schema").toCodecJson<typeof import("@sealant/api-contracts").ResourceDomainForbiddenError | typeof import("@sealant/api-contracts").ResourceDomainNotFoundError | typeof import("@sealant/api-contracts").ResourceDomainInternalServerError | typeof import("@sealant/api-contracts").ResourceInstanceNotFoundError | typeof import("@sealant/api-contracts").ResourceRuntimeUnsupportedError | typeof import("@sealant/api-contracts").ResourceInstanceArchivedError>, import("@sealant/api-contracts").RequestBudget | import("@sealant/api-contracts").RequestRefusal, never>, never, never>;
|
|
3315
|
+
}>>, import("effect/Schema").toCodecJson<typeof import("@sealant/api-contracts").ResourceDomainForbiddenError | typeof import("@sealant/api-contracts").ResourceDomainNotFoundError | typeof import("@sealant/api-contracts").ResourceDomainInternalServerError | typeof import("@sealant/api-contracts").ResourceInstanceSpecRefusedError | typeof import("@sealant/api-contracts").ResourceInstanceNotFoundError | typeof import("@sealant/api-contracts").ResourceRuntimeUnsupportedError | typeof import("@sealant/api-contracts").ResourceInstanceArchivedError | typeof import("@sealant/api-contracts").ResourceInstanceBusyError | typeof import("@sealant/api-contracts").ResourceInstanceBudgetError>, import("@sealant/api-contracts").RequestBudget | import("@sealant/api-contracts").RequestRefusal, never>, never, never>;
|
|
3264
3316
|
readonly upResourceInstance: HttpApiClient.Client.Method<import("effect/http-api/HttpApiEndpoint").HttpApiEndpoint<"upResourceInstance", "POST", "/v1/resource-domains/:resourceDomainId/instances/:key/up", import("effect/Schema").toCodecStringTree<import("effect/Schema").Struct<{
|
|
3265
3317
|
readonly resourceDomainId: import("effect/Schema").String;
|
|
3266
3318
|
readonly key: import("effect/Schema").brand<import("effect/Schema").String, "ResourceInstanceKey">;
|
|
3267
3319
|
}>>, never, import("effect/Schema").toCodecJson<import("effect/Schema").Struct<{
|
|
3268
3320
|
readonly spec: import("effect/Schema").$Record<import("effect/Schema").String, import("effect/Schema").Unknown>;
|
|
3269
3321
|
readonly cause: import("effect/Schema").Literals<readonly ["use", "person"]>;
|
|
3322
|
+
readonly secretEnv: import("effect/Schema").optional<import("effect/Schema").$Record<import("effect/Schema").String, import("effect/Schema").String>>;
|
|
3270
3323
|
}>>, never, import("effect/Schema").toCodecJson<import("effect/Schema").Struct<{
|
|
3324
|
+
readonly endpoint: import("effect/Schema").optional<import("effect/Schema").Struct<{
|
|
3325
|
+
readonly host: import("effect/Schema").String;
|
|
3326
|
+
readonly port: import("effect/Schema").Int;
|
|
3327
|
+
readonly callbackHost: import("effect/Schema").String;
|
|
3328
|
+
}>>;
|
|
3271
3329
|
readonly resourceInstanceId: import("effect/Schema").brand<import("effect/Schema").String, "ResourceInstanceId">;
|
|
3272
3330
|
readonly key: import("effect/Schema").brand<import("effect/Schema").String, "ResourceInstanceKey">;
|
|
3273
3331
|
readonly alias: import("effect/Schema").brand<import("effect/Schema").String, "ResourceInstanceAlias">;
|
|
@@ -3316,7 +3374,7 @@ declare const SealantApiClient_base: Context.ServiceClass<SealantApiClient, "@se
|
|
|
3316
3374
|
readonly name: import("effect/Schema").String;
|
|
3317
3375
|
readonly dockerName: import("effect/Schema").String;
|
|
3318
3376
|
}>>;
|
|
3319
|
-
}>>, import("effect/Schema").toCodecJson<typeof import("@sealant/api-contracts").ResourceDomainForbiddenError | typeof import("@sealant/api-contracts").ResourceDomainNotFoundError | typeof import("@sealant/api-contracts").ResourceDomainInternalServerError | typeof import("@sealant/api-contracts").ResourceInstanceSpecRefusedError | typeof import("@sealant/api-contracts").ResourceRuntimeUnsupportedError | typeof import("@sealant/api-contracts").ResourceInstanceArchivedError | typeof import("@sealant/api-contracts").ResourceInstanceAliasTakenError | typeof import("@sealant/api-contracts").ResourceDomainNotActiveError>, import("@sealant/api-contracts").RequestBudget | import("@sealant/api-contracts").RequestRefusal, never>, never, never>;
|
|
3377
|
+
}>>, import("effect/Schema").toCodecJson<typeof import("@sealant/api-contracts").ResourceDomainForbiddenError | typeof import("@sealant/api-contracts").ResourceDomainNotFoundError | typeof import("@sealant/api-contracts").ResourceDomainInternalServerError | typeof import("@sealant/api-contracts").ResourceInstanceSpecRefusedError | typeof import("@sealant/api-contracts").ResourceRuntimeUnsupportedError | typeof import("@sealant/api-contracts").ResourceInstanceArchivedError | typeof import("@sealant/api-contracts").ResourceInstanceAliasTakenError | typeof import("@sealant/api-contracts").ResourceDomainNotActiveError | typeof import("@sealant/api-contracts").ResourceInstanceBusyError | typeof import("@sealant/api-contracts").ResourceInstanceBudgetError>, import("@sealant/api-contracts").RequestBudget | import("@sealant/api-contracts").RequestRefusal, never>, never, never>;
|
|
3320
3378
|
};
|
|
3321
3379
|
readonly runs: {
|
|
3322
3380
|
readonly createRun: HttpApiClient.Client.Method<import("effect/http-api/HttpApiEndpoint").HttpApiEndpoint<"createRun", "POST", "/v1/runs/", never, never, import("effect/Schema").toCodecJson<import("effect/Schema").Struct<{
|
|
@@ -1136,14 +1136,16 @@ export declare const archiveSshKeyOp: (sshKeyId: string, ownerUserId: string) =>
|
|
|
1136
1136
|
readonly fingerprint: string;
|
|
1137
1137
|
readonly createdAt: string;
|
|
1138
1138
|
}, import("@sealant/api-contracts").BudgetExceededError | import("effect/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RequestRefusedError | Schema.SchemaError | import("@sealant/api-contracts").SshKeyInternalServerError | import("@sealant/api-contracts").SshKeyNotFoundError, SealantApiClient>;
|
|
1139
|
-
export declare const ensureResourceDomainOp: (key: string, budget?: ResourceDomainBudgetLimits) => Effect.Effect<{
|
|
1139
|
+
export declare const ensureResourceDomainOp: (key: string, budget?: ResourceDomainBudgetLimits, ownerKind?: "project" | "organization" | "instance") => Effect.Effect<{
|
|
1140
1140
|
readonly resourceDomainId: string;
|
|
1141
|
+
readonly ownerKind?: "instance" | "organization" | "project" | undefined;
|
|
1141
1142
|
readonly key: string;
|
|
1142
1143
|
readonly createdAt: string;
|
|
1143
1144
|
readonly created: boolean;
|
|
1144
|
-
}, import("@sealant/api-contracts").BudgetExceededError | import("effect/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RequestRefusedError | import("@sealant/api-contracts").ResourceDomainBudgetDiffersError | import("@sealant/api-contracts").ResourceDomainForbiddenError | import("@sealant/api-contracts").ResourceDomainInternalServerError | Schema.SchemaError, SealantApiClient>;
|
|
1145
|
+
}, import("@sealant/api-contracts").BudgetExceededError | import("effect/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RequestRefusedError | import("@sealant/api-contracts").ResourceDomainBudgetDiffersError | import("@sealant/api-contracts").ResourceDomainForbiddenError | import("@sealant/api-contracts").ResourceDomainInternalServerError | import("@sealant/api-contracts").ResourceDomainOwnerDiffersError | Schema.SchemaError, SealantApiClient>;
|
|
1145
1146
|
export declare const getResourceDomainOp: (resourceDomainId: string) => Effect.Effect<{
|
|
1146
1147
|
readonly resourceDomainId: string;
|
|
1148
|
+
readonly ownerKind?: "instance" | "organization" | "project" | undefined;
|
|
1147
1149
|
readonly key: string;
|
|
1148
1150
|
readonly createdAt: string;
|
|
1149
1151
|
}, import("@sealant/api-contracts").BudgetExceededError | import("effect/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RequestRefusedError | import("@sealant/api-contracts").ResourceDomainForbiddenError | import("@sealant/api-contracts").ResourceDomainInternalServerError | import("@sealant/api-contracts").ResourceDomainNotFoundError | Schema.SchemaError, SealantApiClient>;
|
|
@@ -1221,6 +1223,11 @@ export declare const setResourceDomainBudgetOp: (resourceDomainId: string, paylo
|
|
|
1221
1223
|
};
|
|
1222
1224
|
}, import("@sealant/api-contracts").BudgetExceededError | import("effect/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RequestRefusedError | import("@sealant/api-contracts").ResourceDomainBudgetRevisionConflictError | import("@sealant/api-contracts").ResourceDomainForbiddenError | import("@sealant/api-contracts").ResourceDomainInternalServerError | import("@sealant/api-contracts").ResourceDomainNotFoundError | Schema.SchemaError, SealantApiClient>;
|
|
1223
1225
|
export declare const upResourceInstanceOp: (resourceDomainId: string, key: string, payload: UpResourceInstanceRequest) => Effect.Effect<{
|
|
1226
|
+
readonly endpoint?: {
|
|
1227
|
+
readonly host: string;
|
|
1228
|
+
readonly port: number;
|
|
1229
|
+
readonly callbackHost: string;
|
|
1230
|
+
} | undefined;
|
|
1224
1231
|
readonly resourceInstanceId: string & import("effect/Brand").Brand<"ResourceInstanceId">;
|
|
1225
1232
|
readonly key: string & import("effect/Brand").Brand<"ResourceInstanceKey">;
|
|
1226
1233
|
readonly alias: string & import("effect/Brand").Brand<"ResourceInstanceAlias">;
|
|
@@ -1269,8 +1276,13 @@ export declare const upResourceInstanceOp: (resourceDomainId: string, key: strin
|
|
|
1269
1276
|
readonly name: string;
|
|
1270
1277
|
readonly dockerName: string;
|
|
1271
1278
|
}[];
|
|
1272
|
-
}, import("@sealant/api-contracts").BudgetExceededError | import("effect/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RequestRefusedError | import("@sealant/api-contracts").ResourceDomainForbiddenError | import("@sealant/api-contracts").ResourceDomainInternalServerError | import("@sealant/api-contracts").ResourceDomainNotActiveError | import("@sealant/api-contracts").ResourceDomainNotFoundError | import("@sealant/api-contracts").ResourceInstanceAliasTakenError | import("@sealant/api-contracts").ResourceInstanceArchivedError | import("@sealant/api-contracts").ResourceInstanceSpecRefusedError | import("@sealant/api-contracts").ResourceRuntimeUnsupportedError | Schema.SchemaError | import("effect/Cause").UnknownError, SealantApiClient>;
|
|
1279
|
+
}, import("@sealant/api-contracts").BudgetExceededError | import("effect/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RequestRefusedError | import("@sealant/api-contracts").ResourceDomainForbiddenError | import("@sealant/api-contracts").ResourceDomainInternalServerError | import("@sealant/api-contracts").ResourceDomainNotActiveError | import("@sealant/api-contracts").ResourceDomainNotFoundError | import("@sealant/api-contracts").ResourceInstanceAliasTakenError | import("@sealant/api-contracts").ResourceInstanceArchivedError | import("@sealant/api-contracts").ResourceInstanceBudgetError | import("@sealant/api-contracts").ResourceInstanceBusyError | import("@sealant/api-contracts").ResourceInstanceSpecRefusedError | import("@sealant/api-contracts").ResourceRuntimeUnsupportedError | Schema.SchemaError | import("effect/Cause").UnknownError, SealantApiClient>;
|
|
1273
1280
|
export declare const getResourceInstanceOp: (resourceDomainId: string, key: string) => Effect.Effect<{
|
|
1281
|
+
readonly endpoint?: {
|
|
1282
|
+
readonly host: string;
|
|
1283
|
+
readonly port: number;
|
|
1284
|
+
readonly callbackHost: string;
|
|
1285
|
+
} | undefined;
|
|
1274
1286
|
readonly resourceInstanceId: string & import("effect/Brand").Brand<"ResourceInstanceId">;
|
|
1275
1287
|
readonly key: string & import("effect/Brand").Brand<"ResourceInstanceKey">;
|
|
1276
1288
|
readonly alias: string & import("effect/Brand").Brand<"ResourceInstanceAlias">;
|
|
@@ -1319,9 +1331,14 @@ export declare const getResourceInstanceOp: (resourceDomainId: string, key: stri
|
|
|
1319
1331
|
readonly name: string;
|
|
1320
1332
|
readonly dockerName: string;
|
|
1321
1333
|
}[];
|
|
1322
|
-
}, import("@sealant/api-contracts").BudgetExceededError | import("effect/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RequestRefusedError | import("@sealant/api-contracts").ResourceDomainForbiddenError | import("@sealant/api-contracts").ResourceDomainInternalServerError | import("@sealant/api-contracts").ResourceDomainNotFoundError | import("@sealant/api-contracts").ResourceInstanceNotFoundError | Schema.SchemaError | import("effect/Cause").UnknownError, SealantApiClient>;
|
|
1334
|
+
}, import("@sealant/api-contracts").BudgetExceededError | import("effect/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RequestRefusedError | import("@sealant/api-contracts").ResourceDomainForbiddenError | import("@sealant/api-contracts").ResourceDomainInternalServerError | import("@sealant/api-contracts").ResourceDomainNotFoundError | import("@sealant/api-contracts").ResourceInstanceBudgetError | import("@sealant/api-contracts").ResourceInstanceBusyError | import("@sealant/api-contracts").ResourceInstanceNotFoundError | import("@sealant/api-contracts").ResourceInstanceSpecRefusedError | import("@sealant/api-contracts").ResourceRuntimeUnsupportedError | Schema.SchemaError | import("effect/Cause").UnknownError, SealantApiClient>;
|
|
1323
1335
|
export declare const listResourceInstancesOp: (resourceDomainId: string, archived: boolean) => Effect.Effect<{
|
|
1324
1336
|
readonly items: readonly {
|
|
1337
|
+
readonly endpoint?: {
|
|
1338
|
+
readonly host: string;
|
|
1339
|
+
readonly port: number;
|
|
1340
|
+
readonly callbackHost: string;
|
|
1341
|
+
} | undefined;
|
|
1325
1342
|
readonly resourceInstanceId: string & import("effect/Brand").Brand<"ResourceInstanceId">;
|
|
1326
1343
|
readonly key: string & import("effect/Brand").Brand<"ResourceInstanceKey">;
|
|
1327
1344
|
readonly alias: string & import("effect/Brand").Brand<"ResourceInstanceAlias">;
|
|
@@ -1371,8 +1388,13 @@ export declare const listResourceInstancesOp: (resourceDomainId: string, archive
|
|
|
1371
1388
|
readonly dockerName: string;
|
|
1372
1389
|
}[];
|
|
1373
1390
|
}[];
|
|
1374
|
-
}, import("@sealant/api-contracts").BudgetExceededError | import("effect/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RequestRefusedError | import("@sealant/api-contracts").ResourceDomainForbiddenError | import("@sealant/api-contracts").ResourceDomainInternalServerError | import("@sealant/api-contracts").ResourceDomainNotFoundError | Schema.SchemaError, SealantApiClient>;
|
|
1391
|
+
}, import("@sealant/api-contracts").BudgetExceededError | import("effect/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RequestRefusedError | import("@sealant/api-contracts").ResourceDomainForbiddenError | import("@sealant/api-contracts").ResourceDomainInternalServerError | import("@sealant/api-contracts").ResourceDomainNotFoundError | import("@sealant/api-contracts").ResourceInstanceBudgetError | import("@sealant/api-contracts").ResourceInstanceBusyError | import("@sealant/api-contracts").ResourceInstanceSpecRefusedError | import("@sealant/api-contracts").ResourceRuntimeUnsupportedError | Schema.SchemaError, SealantApiClient>;
|
|
1375
1392
|
export declare const stopResourceInstanceOp: (resourceDomainId: string, key: string, by: string) => Effect.Effect<{
|
|
1393
|
+
readonly endpoint?: {
|
|
1394
|
+
readonly host: string;
|
|
1395
|
+
readonly port: number;
|
|
1396
|
+
readonly callbackHost: string;
|
|
1397
|
+
} | undefined;
|
|
1376
1398
|
readonly resourceInstanceId: string & import("effect/Brand").Brand<"ResourceInstanceId">;
|
|
1377
1399
|
readonly key: string & import("effect/Brand").Brand<"ResourceInstanceKey">;
|
|
1378
1400
|
readonly alias: string & import("effect/Brand").Brand<"ResourceInstanceAlias">;
|
|
@@ -1421,9 +1443,14 @@ export declare const stopResourceInstanceOp: (resourceDomainId: string, key: str
|
|
|
1421
1443
|
readonly name: string;
|
|
1422
1444
|
readonly dockerName: string;
|
|
1423
1445
|
}[];
|
|
1424
|
-
}, import("@sealant/api-contracts").BudgetExceededError | import("effect/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RequestRefusedError | import("@sealant/api-contracts").ResourceDomainForbiddenError | import("@sealant/api-contracts").ResourceDomainInternalServerError | import("@sealant/api-contracts").ResourceDomainNotFoundError | import("@sealant/api-contracts").ResourceInstanceArchivedError | import("@sealant/api-contracts").ResourceInstanceNotFoundError | import("@sealant/api-contracts").ResourceRuntimeUnsupportedError | Schema.SchemaError | import("effect/Cause").UnknownError, SealantApiClient>;
|
|
1446
|
+
}, import("@sealant/api-contracts").BudgetExceededError | import("effect/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RequestRefusedError | import("@sealant/api-contracts").ResourceDomainForbiddenError | import("@sealant/api-contracts").ResourceDomainInternalServerError | import("@sealant/api-contracts").ResourceDomainNotFoundError | import("@sealant/api-contracts").ResourceInstanceArchivedError | import("@sealant/api-contracts").ResourceInstanceBudgetError | import("@sealant/api-contracts").ResourceInstanceBusyError | import("@sealant/api-contracts").ResourceInstanceNotFoundError | import("@sealant/api-contracts").ResourceInstanceSpecRefusedError | import("@sealant/api-contracts").ResourceRuntimeUnsupportedError | Schema.SchemaError | import("effect/Cause").UnknownError, SealantApiClient>;
|
|
1425
1447
|
export declare const archiveResourceInstanceOp: (resourceDomainId: string, key: string) => Effect.Effect<{
|
|
1426
1448
|
readonly instance: {
|
|
1449
|
+
readonly endpoint?: {
|
|
1450
|
+
readonly host: string;
|
|
1451
|
+
readonly port: number;
|
|
1452
|
+
readonly callbackHost: string;
|
|
1453
|
+
} | undefined;
|
|
1427
1454
|
readonly resourceInstanceId: string & import("effect/Brand").Brand<"ResourceInstanceId">;
|
|
1428
1455
|
readonly key: string & import("effect/Brand").Brand<"ResourceInstanceKey">;
|
|
1429
1456
|
readonly alias: string & import("effect/Brand").Brand<"ResourceInstanceAlias">;
|
|
@@ -1479,7 +1506,7 @@ export declare const archiveResourceInstanceOp: (resourceDomainId: string, key:
|
|
|
1479
1506
|
readonly dockerName: string;
|
|
1480
1507
|
readonly bytes: number | null;
|
|
1481
1508
|
}[];
|
|
1482
|
-
}, import("@sealant/api-contracts").BudgetExceededError | import("effect/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RequestRefusedError | import("@sealant/api-contracts").ResourceDomainForbiddenError | import("@sealant/api-contracts").ResourceDomainInternalServerError | import("@sealant/api-contracts").ResourceDomainNotFoundError | import("@sealant/api-contracts").ResourceInstanceNotFoundError | import("@sealant/api-contracts").ResourceRuntimeUnsupportedError | Schema.SchemaError | import("effect/Cause").UnknownError, SealantApiClient>;
|
|
1509
|
+
}, import("@sealant/api-contracts").BudgetExceededError | import("effect/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RequestRefusedError | import("@sealant/api-contracts").ResourceDomainForbiddenError | import("@sealant/api-contracts").ResourceDomainInternalServerError | import("@sealant/api-contracts").ResourceDomainNotFoundError | import("@sealant/api-contracts").ResourceInstanceBudgetError | import("@sealant/api-contracts").ResourceInstanceBusyError | import("@sealant/api-contracts").ResourceInstanceNotFoundError | import("@sealant/api-contracts").ResourceInstanceSpecRefusedError | import("@sealant/api-contracts").ResourceRuntimeUnsupportedError | Schema.SchemaError | import("effect/Cause").UnknownError, SealantApiClient>;
|
|
1483
1510
|
export declare const linkResourceWorkspaceOp: (resourceDomainId: string, workspaceId: string, worktreeKey: string, aliases?: Readonly<Record<string, "project" | "worktree">>) => Effect.Effect<{
|
|
1484
1511
|
readonly workspaceId: string;
|
|
1485
1512
|
readonly worktreeKey: string & import("effect/Brand").Brand<"ResourceWorktreeKey">;
|
|
@@ -1487,7 +1514,7 @@ export declare const linkResourceWorkspaceOp: (resourceDomainId: string, workspa
|
|
|
1487
1514
|
readonly [x: string & import("effect/Brand").Brand<"ResourceInstanceAlias">]: "project" | "worktree";
|
|
1488
1515
|
} | null;
|
|
1489
1516
|
readonly attachedExecutors: number;
|
|
1490
|
-
}, import("@sealant/api-contracts").BudgetExceededError | import("effect/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RequestRefusedError | import("@sealant/api-contracts").ResourceDomainForbiddenError | import("@sealant/api-contracts").ResourceDomainInternalServerError | import("@sealant/api-contracts").ResourceDomainNotActiveError | import("@sealant/api-contracts").ResourceDomainNotFoundError | import("@sealant/api-contracts").ResourceRuntimeUnsupportedError | import("@sealant/api-contracts").ResourceWorkspaceLinkedElsewhereError | import("@sealant/api-contracts").ResourceWorkspaceNotFoundError | Schema.SchemaError | import("effect/Cause").UnknownError, SealantApiClient>;
|
|
1517
|
+
}, import("@sealant/api-contracts").BudgetExceededError | import("effect/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RequestRefusedError | import("@sealant/api-contracts").ResourceDomainForbiddenError | import("@sealant/api-contracts").ResourceDomainInternalServerError | import("@sealant/api-contracts").ResourceDomainNotActiveError | import("@sealant/api-contracts").ResourceDomainNotFoundError | import("@sealant/api-contracts").ResourceInstanceBudgetError | import("@sealant/api-contracts").ResourceInstanceBusyError | import("@sealant/api-contracts").ResourceInstanceSpecRefusedError | import("@sealant/api-contracts").ResourceRuntimeUnsupportedError | import("@sealant/api-contracts").ResourceWorkspaceLinkedElsewhereError | import("@sealant/api-contracts").ResourceWorkspaceNotFoundError | Schema.SchemaError | import("effect/Cause").UnknownError, SealantApiClient>;
|
|
1491
1518
|
export declare const archiveResourceDomainOp: (resourceDomainId: string) => Effect.Effect<{
|
|
1492
1519
|
readonly volumes: readonly {
|
|
1493
1520
|
readonly instanceKey: string & import("effect/Brand").Brand<"ResourceInstanceKey">;
|
|
@@ -1495,4 +1522,4 @@ export declare const archiveResourceDomainOp: (resourceDomainId: string) => Effe
|
|
|
1495
1522
|
readonly dockerName: string;
|
|
1496
1523
|
readonly bytes: number | null;
|
|
1497
1524
|
}[];
|
|
1498
|
-
}, import("@sealant/api-contracts").BudgetExceededError | import("effect/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RequestRefusedError | import("@sealant/api-contracts").ResourceDomainForbiddenError | import("@sealant/api-contracts").ResourceDomainInternalServerError | import("@sealant/api-contracts").ResourceDomainNotFoundError | import("@sealant/api-contracts").ResourceRuntimeUnsupportedError | Schema.SchemaError, SealantApiClient>;
|
|
1525
|
+
}, import("@sealant/api-contracts").BudgetExceededError | import("effect/http/HttpClientError").HttpClientError | import("@sealant/api-contracts").RequestRefusedError | import("@sealant/api-contracts").ResourceDomainForbiddenError | import("@sealant/api-contracts").ResourceDomainInternalServerError | import("@sealant/api-contracts").ResourceDomainNotFoundError | import("@sealant/api-contracts").ResourceInstanceBudgetError | import("@sealant/api-contracts").ResourceInstanceBusyError | import("@sealant/api-contracts").ResourceInstanceSpecRefusedError | import("@sealant/api-contracts").ResourceRuntimeUnsupportedError | Schema.SchemaError, SealantApiClient>;
|
|
@@ -88,8 +88,12 @@ export const createSshKeyOp = (payload) => Effect.flatMap(SealantApiClient, (cli
|
|
|
88
88
|
export const listSshKeysOp = (ownerUserId) => Effect.flatMap(SealantApiClient, (client) => client.sshKeys.listSshKeys({ query: { ownerUserId } }));
|
|
89
89
|
export const archiveSshKeyOp = (sshKeyId, ownerUserId) => Effect.flatMap(SealantApiClient, (client) => client.sshKeys.archiveSshKey({ params: { sshKeyId }, query: { ownerUserId } }));
|
|
90
90
|
// ---- resource domains (the SDK's scopes) ----
|
|
91
|
-
export const ensureResourceDomainOp = (key, budget) => Effect.flatMap(SealantApiClient, (client) => client.resourceDomains.ensureResourceDomain({
|
|
92
|
-
payload:
|
|
91
|
+
export const ensureResourceDomainOp = (key, budget, ownerKind) => Effect.flatMap(SealantApiClient, (client) => client.resourceDomains.ensureResourceDomain({
|
|
92
|
+
payload: {
|
|
93
|
+
key,
|
|
94
|
+
...(budget === undefined ? {} : { budget }),
|
|
95
|
+
...(ownerKind === undefined ? {} : { ownerKind }),
|
|
96
|
+
},
|
|
93
97
|
}));
|
|
94
98
|
export const getResourceDomainOp = (resourceDomainId) => Effect.flatMap(SealantApiClient, (client) => client.resourceDomains.getResourceDomain({ params: { resourceDomainId } }));
|
|
95
99
|
export const grantResourceDomainMemberOp = (resourceDomainId, userId, payload) => Effect.flatMap(SealantApiClient, (client) => client.resourceDomains.grantResourceDomainMember({
|
|
@@ -6,6 +6,13 @@ import { type SealantInternalConfig } from "./internal/config.js";
|
|
|
6
6
|
* `ResourceInstanceSpecRefusedError`, naming each).
|
|
7
7
|
*/
|
|
8
8
|
export interface ScopeInstanceSpec {
|
|
9
|
+
/** Caller-only reach requires an organization or instance scope, null idle stop and no worktree. */
|
|
10
|
+
readonly reach?: {
|
|
11
|
+
readonly kind: "caller";
|
|
12
|
+
readonly caller: string;
|
|
13
|
+
readonly port: number;
|
|
14
|
+
readonly callbackPort: number;
|
|
15
|
+
};
|
|
9
16
|
/** The DNS name a linked workspace reaches it by (`db`). */
|
|
10
17
|
readonly alias: string;
|
|
11
18
|
/** Null: every linked workspace reaches it. Set: only workspaces linked with this worktree key. */
|
|
@@ -14,12 +21,13 @@ export interface ScopeInstanceSpec {
|
|
|
14
21
|
readonly image: string;
|
|
15
22
|
/** Replaces the image's CMD; its ENTRYPOINT always runs. */
|
|
16
23
|
readonly command: ReadonlyArray<string> | null;
|
|
17
|
-
/** Plain env.
|
|
24
|
+
/** Plain env. Caller instances receive secrets through up's write-only secretEnv option. */
|
|
18
25
|
readonly env: Readonly<Record<string, string>>;
|
|
19
|
-
/**
|
|
26
|
+
/** Retained named volumes. Caller instances must declare every image VOLUME and storageBytes. */
|
|
20
27
|
readonly volumes: ReadonlyArray<{
|
|
21
28
|
readonly name: string;
|
|
22
29
|
readonly mountPath: string;
|
|
30
|
+
readonly storageBytes?: number;
|
|
23
31
|
}>;
|
|
24
32
|
readonly limits: {
|
|
25
33
|
readonly cpuMillicores: number;
|
|
@@ -33,8 +41,8 @@ export interface ScopeInstanceSpec {
|
|
|
33
41
|
readonly argv: ReadonlyArray<string>;
|
|
34
42
|
readonly user: string | null;
|
|
35
43
|
};
|
|
36
|
-
/**
|
|
37
|
-
readonly idleStopAfterSeconds: number;
|
|
44
|
+
/** Workspace idle timeout. Caller-only instances require null and never idle-stop. */
|
|
45
|
+
readonly idleStopAfterSeconds: number | null;
|
|
38
46
|
}
|
|
39
47
|
export type ScopeInstanceStopReason = {
|
|
40
48
|
readonly kind: "idle";
|
|
@@ -74,6 +82,12 @@ export type ScopeInstanceState = {
|
|
|
74
82
|
readonly at: Date;
|
|
75
83
|
};
|
|
76
84
|
export interface ScopeInstance {
|
|
85
|
+
/** Reachable only by the configured server caller. */
|
|
86
|
+
readonly endpoint?: {
|
|
87
|
+
readonly host: string;
|
|
88
|
+
readonly port: number;
|
|
89
|
+
readonly callbackHost: string;
|
|
90
|
+
};
|
|
77
91
|
/** `rin:<uuid>`. */
|
|
78
92
|
readonly id: string;
|
|
79
93
|
readonly key: string;
|
|
@@ -119,7 +133,11 @@ export interface ScopeInstances {
|
|
|
119
133
|
*/
|
|
120
134
|
up(key: string, spec: ScopeInstanceSpec, options: {
|
|
121
135
|
readonly cause: "use" | "person";
|
|
136
|
+
/** Omission retains secrets; an explicit map replaces them. Requires Core's credentials key. */
|
|
137
|
+
readonly secretEnv?: Readonly<Record<string, string>>;
|
|
122
138
|
}): Promise<ScopeInstance>;
|
|
139
|
+
/** Download a stopped named volume as an uncompressed tar stream. No volume is deleted. */
|
|
140
|
+
backup(key: string, volume: string): Promise<ReadableStream<Uint8Array>>;
|
|
123
141
|
/** Rejects with 404 `ResourceInstanceNotFoundError` when the scope has none by this key. */
|
|
124
142
|
get(key: string): Promise<ScopeInstance>;
|
|
125
143
|
/** The scope's instances; `archived: true` lists the archived ones, whose volumes are kept. */
|
package/dist/scope-instances.js
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* A scope's long-running instances (a project's Postgres, Redis or any image), the workspaces that
|
|
3
|
-
* reach them, and the scope's archive.
|
|
4
|
-
*
|
|
5
|
-
* runs <runtime>`).
|
|
3
|
+
* reach them, and the scope's archive. Organization and installation scopes use caller-only
|
|
4
|
+
* reach on Docker or Kubernetes. Other providers reject with `ResourceRuntimeUnsupportedError`.
|
|
6
5
|
*/
|
|
7
|
-
import { RESOURCE_INSTANCE_EXEC, } from "@sealant/api-contracts";
|
|
6
|
+
import { RESOURCE_INSTANCE_EXEC, RESOURCE_INSTANCE_BACKUP, } from "@sealant/api-contracts";
|
|
8
7
|
import { archiveResourceDomainOp, archiveResourceInstanceOp, getResourceInstanceOp, linkResourceWorkspaceOp, listResourceInstancesOp, stopResourceInstanceOp, upResourceInstanceOp, } from "./effect/operations.js";
|
|
9
8
|
import { SealantApiError, SealantBudgetExceededError, SealantError } from "./errors.js";
|
|
10
9
|
import { resolveRequestPriority } from "./internal/config.js";
|
|
@@ -31,6 +30,7 @@ const toState = (state) => {
|
|
|
31
30
|
};
|
|
32
31
|
const toInstance = (wire) => ({
|
|
33
32
|
id: wire.resourceInstanceId,
|
|
33
|
+
...(wire.endpoint === undefined ? {} : { endpoint: wire.endpoint }),
|
|
34
34
|
key: wire.key,
|
|
35
35
|
alias: wire.alias,
|
|
36
36
|
worktreeKey: wire.worktreeKey,
|
|
@@ -138,7 +138,30 @@ const exec = async (config, scopeId, key, options) => {
|
|
|
138
138
|
};
|
|
139
139
|
export const makeScopeInstances = (runtime, config, scopeId) => ({
|
|
140
140
|
instances: {
|
|
141
|
-
up: async (key, spec, { cause }) => toInstance(await runtime.run(upResourceInstanceOp(scopeId, key, {
|
|
141
|
+
up: async (key, spec, { cause, secretEnv }) => toInstance(await runtime.run(upResourceInstanceOp(scopeId, key, {
|
|
142
|
+
spec: { ...spec },
|
|
143
|
+
cause,
|
|
144
|
+
...(secretEnv === undefined ? {} : { secretEnv }),
|
|
145
|
+
}))),
|
|
146
|
+
backup: async (key, volume) => {
|
|
147
|
+
const path = RESOURCE_INSTANCE_BACKUP.path
|
|
148
|
+
.replace(":resourceDomainId", encodeURIComponent(scopeId))
|
|
149
|
+
.replace(":key", encodeURIComponent(key))
|
|
150
|
+
.replace(":volume", encodeURIComponent(volume));
|
|
151
|
+
const response = await (config.fetch ?? fetch)(new URL(path, config.baseUrl), {
|
|
152
|
+
headers: {
|
|
153
|
+
"x-sealant-request-priority": resolveRequestPriority(config.requestPriority),
|
|
154
|
+
...(config.apiKey === undefined ? {} : { authorization: `Bearer ${config.apiKey}` }),
|
|
155
|
+
},
|
|
156
|
+
});
|
|
157
|
+
if (!response.ok)
|
|
158
|
+
throw new SealantApiError("The stopped-volume backup was refused.", {
|
|
159
|
+
status: response.status,
|
|
160
|
+
});
|
|
161
|
+
if (response.body === null)
|
|
162
|
+
throw new SealantError("The backup response has no stream.");
|
|
163
|
+
return response.body;
|
|
164
|
+
},
|
|
142
165
|
get: async (key) => toInstance(await runtime.run(getResourceInstanceOp(scopeId, key))),
|
|
143
166
|
list: async (options) => (await runtime.run(listResourceInstancesOp(scopeId, options?.archived === true))).items.map(toInstance),
|
|
144
167
|
stop: async (key, reason) => toInstance(await runtime.run(stopResourceInstanceOp(scopeId, key, reason.by))),
|
package/dist/scopes.d.ts
CHANGED
|
@@ -11,6 +11,8 @@ import type { SdkRuntime } from "./effect/runtime.js";
|
|
|
11
11
|
import type { SealantInternalConfig } from "./internal/config.js";
|
|
12
12
|
import { type ScopeArchivedVolume, type ScopeInstances, type ScopeWorkspaces } from "./scope-instances.js";
|
|
13
13
|
export interface ScopeInfo {
|
|
14
|
+
/** The application key identifies this owner. Older servers omit it and mean project. */
|
|
15
|
+
readonly ownerKind?: "project" | "organization" | "instance";
|
|
14
16
|
/** `rdm:<uuid>`. No person field of the API accepts it. */
|
|
15
17
|
readonly id: string;
|
|
16
18
|
/** `<application>:<name>`, unique across every application. */
|
|
@@ -126,6 +128,7 @@ export interface ScopesNamespace {
|
|
|
126
128
|
*/
|
|
127
129
|
ensure(options: {
|
|
128
130
|
readonly key: string;
|
|
131
|
+
readonly ownerKind?: "project" | "organization" | "instance";
|
|
129
132
|
readonly budget?: ScopeBudgetLimits;
|
|
130
133
|
}): Promise<EnsuredScope>;
|
|
131
134
|
get(scopeId: string): Promise<ScopeInfo>;
|
package/dist/scopes.js
CHANGED
|
@@ -12,14 +12,15 @@ import { ensureResourceDomainOp, getResourceDomainBudgetOp, getResourceDomainMem
|
|
|
12
12
|
import { makeScopeInstances, } from "./scope-instances.js";
|
|
13
13
|
const toScope = (wire) => ({
|
|
14
14
|
id: wire.resourceDomainId,
|
|
15
|
+
...(wire.ownerKind === undefined ? {} : { ownerKind: wire.ownerKind }),
|
|
15
16
|
key: wire.key,
|
|
16
17
|
createdAt: wire.createdAt,
|
|
17
18
|
});
|
|
18
19
|
export const makeScopes = (runtime, config) => {
|
|
19
20
|
const get = async (scopeId) => toScope(await runtime.run(getResourceDomainOp(scopeId)));
|
|
20
21
|
return {
|
|
21
|
-
ensure: async ({ key, budget }) => {
|
|
22
|
-
const wire = await runtime.run(ensureResourceDomainOp(key, budget));
|
|
22
|
+
ensure: async ({ key, budget, ownerKind }) => {
|
|
23
|
+
const wire = await runtime.run(ensureResourceDomainOp(key, budget, ownerKind));
|
|
23
24
|
return { ...toScope(wire), created: wire.created };
|
|
24
25
|
},
|
|
25
26
|
get,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sealant/sdk-next",
|
|
3
|
-
"version": "0.40.0-next.
|
|
3
|
+
"version": "0.40.0-next.789",
|
|
4
4
|
"description": "The fluent public SDK for Sealant — create a workspace, run a harness, replay the record.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -26,12 +26,12 @@
|
|
|
26
26
|
"node": ">=20"
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@sealant/api-contracts": "npm:@sealant/api-contracts-next@0.40.0-next.
|
|
29
|
+
"@sealant/api-contracts": "npm:@sealant/api-contracts-next@0.40.0-next.789"
|
|
30
30
|
},
|
|
31
31
|
"peerDependencies": {
|
|
32
32
|
"effect": "^4.0.5"
|
|
33
33
|
},
|
|
34
|
-
"gitHead": "
|
|
34
|
+
"gitHead": "1a0bf7279c949110296c8f40f21c4c745d81db9d",
|
|
35
35
|
"publishConfig": {
|
|
36
36
|
"access": "public"
|
|
37
37
|
}
|