@serve.zone/interfaces 32.12.0 → 32.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/ts/data/index.ts CHANGED
@@ -17,6 +17,7 @@ export * from './docker.js';
17
17
  export * from './domain.js';
18
18
  export * from './event.js';
19
19
  export * from './externalregistry.js';
20
+ export * from './fleetcutover.js';
20
21
  export * from './gateway.js';
21
22
  export * from './hostedapp.js';
22
23
  export * from './image.js';
@@ -0,0 +1,160 @@
1
+ import * as plugins from '../plugins.js';
2
+ import type { IIdentityCredential } from '../data/user.js';
3
+ import type { IClusterRuntime } from '../data/clusterruntime.js';
4
+ import type { IServiceRuntimeSpec } from '../data/serviceruntime.js';
5
+ import type {
6
+ IFleetCutoverAcceptedEvidenceReference,
7
+ IFleetCutoverCorestoreAdoptionReceipt,
8
+ IFleetCutoverIngressDesignation,
9
+ IFleetCutoverIngressPreparationRequest,
10
+ IFleetCutoverIngressAuthority,
11
+ IFleetCutoverScope,
12
+ IFleetCutoverScopeClassificationRequest,
13
+ IFleetCutoverVolumeHandoffIntent,
14
+ TFleetCutoverPhaseAdvance,
15
+ TFleetCutoverRuntimeSpecRelease,
16
+ TFleetCutoverVolumeFence,
17
+ } from '../data/fleetcutover.js';
18
+
19
+ export interface IReq_Any_Cloudly_GetFleetCutoverScope
20
+ extends plugins.typedrequestInterfaces.implementsTR<
21
+ plugins.typedrequestInterfaces.ITypedRequest,
22
+ IReq_Any_Cloudly_GetFleetCutoverScope
23
+ > {
24
+ method: 'getFleetCutoverScope';
25
+ request: { identity: IIdentityCredential; clusterId: string };
26
+ response: { scope: IFleetCutoverScope | null };
27
+ }
28
+
29
+ /**
30
+ * The administrator classifies the exact current census candidate. Cloudly compares every entry
31
+ * with its current service, platform-service, credential, and storage authority before it may
32
+ * persist a complete scope; the request itself is no proof of those facts.
33
+ */
34
+ export interface IReq_Admin_Cloudly_ClassifyFleetCutoverScope
35
+ extends plugins.typedrequestInterfaces.implementsTR<
36
+ plugins.typedrequestInterfaces.ITypedRequest,
37
+ IReq_Admin_Cloudly_ClassifyFleetCutoverScope
38
+ > {
39
+ method: 'classifyFleetCutoverScope';
40
+ request: {
41
+ identity: IIdentityCredential;
42
+ classification: IFleetCutoverScopeClassificationRequest;
43
+ };
44
+ response: { scope: IFleetCutoverScope };
45
+ }
46
+
47
+ /**
48
+ * Forward-only legal phase CAS. All receipt references are dereferenced by Cloudly in the same
49
+ * transaction; caller-supplied records or booleans never satisfy a cutover condition.
50
+ */
51
+ export interface IReq_Admin_Cloudly_AdvanceFleetCutoverPhase
52
+ extends plugins.typedrequestInterfaces.implementsTR<
53
+ plugins.typedrequestInterfaces.ITypedRequest,
54
+ IReq_Admin_Cloudly_AdvanceFleetCutoverPhase
55
+ > {
56
+ method: 'advanceFleetCutoverPhase';
57
+ request: { identity: IIdentityCredential; advance: TFleetCutoverPhaseAdvance };
58
+ response: { runtime: IClusterRuntime; replayed: boolean };
59
+ }
60
+
61
+ /**
62
+ * Cloudly designates one existing live service as the new ingress before assignment. It accepts
63
+ * only current owner state and creates the managed launcher bearer and designation atomically.
64
+ */
65
+ export interface IReq_Admin_Cloudly_PrepareFleetCutoverIngress
66
+ extends plugins.typedrequestInterfaces.implementsTR<
67
+ plugins.typedrequestInterfaces.ITypedRequest,
68
+ IReq_Admin_Cloudly_PrepareFleetCutoverIngress
69
+ > {
70
+ method: 'prepareFleetCutoverIngress';
71
+ request: {
72
+ identity: IIdentityCredential;
73
+ preparation: IFleetCutoverIngressPreparationRequest;
74
+ };
75
+ response: {
76
+ designation: IFleetCutoverIngressDesignation;
77
+ /** The resulting exact-cluster spec, still held after preparation. */
78
+ spec: IServiceRuntimeSpec;
79
+ replayed: boolean;
80
+ };
81
+ }
82
+
83
+ /**
84
+ * The only cutover-specific hold release. Ingress releases first under an accepted empty public
85
+ * port policy; applications require the accepted ingress/port/route authority assembled later.
86
+ */
87
+ export interface IReq_Admin_Cloudly_ReleaseFleetCutoverRuntimeSpec
88
+ extends plugins.typedrequestInterfaces.implementsTR<
89
+ plugins.typedrequestInterfaces.ITypedRequest,
90
+ IReq_Admin_Cloudly_ReleaseFleetCutoverRuntimeSpec
91
+ > {
92
+ method: 'releaseFleetCutoverRuntimeSpec';
93
+ request: { identity: IIdentityCredential; release: TFleetCutoverRuntimeSpecRelease };
94
+ response: { spec: IServiceRuntimeSpec; replayed: boolean };
95
+ }
96
+
97
+ export interface IReq_Any_Cloudly_GetFleetCutoverIngressAuthority
98
+ extends plugins.typedrequestInterfaces.implementsTR<
99
+ plugins.typedrequestInterfaces.ITypedRequest,
100
+ IReq_Any_Cloudly_GetFleetCutoverIngressAuthority
101
+ > {
102
+ method: 'getFleetCutoverIngressAuthority';
103
+ request: { identity: IIdentityCredential; clusterId: string };
104
+ response: { authority: IFleetCutoverIngressAuthority | null };
105
+ }
106
+
107
+ /** Root-local only. Holding an intent creates negative storage authority and no runtime session. */
108
+ export interface IReq_PalletLocal_Pallet_HoldFleetCutoverVolumeFence
109
+ extends plugins.typedrequestInterfaces.implementsTR<
110
+ plugins.typedrequestInterfaces.ITypedRequest,
111
+ IReq_PalletLocal_Pallet_HoldFleetCutoverVolumeFence
112
+ > {
113
+ method: 'holdFleetCutoverVolumeFence';
114
+ request: { fenceId: string; handoffIntent: IFleetCutoverVolumeHandoffIntent };
115
+ response: { fence: Extract<TFleetCutoverVolumeFence, { state: 'held' }> };
116
+ }
117
+
118
+ export interface IReq_PalletLocal_Pallet_GetFleetCutoverVolumeFence
119
+ extends plugins.typedrequestInterfaces.implementsTR<
120
+ plugins.typedrequestInterfaces.ITypedRequest,
121
+ IReq_PalletLocal_Pallet_GetFleetCutoverVolumeFence
122
+ > {
123
+ method: 'getFleetCutoverVolumeFence';
124
+ request: { fenceId: string };
125
+ response: { fence: TFleetCutoverVolumeFence | null };
126
+ }
127
+
128
+ /**
129
+ * Pallet consumes the local fence only around a current accepted Corestore adoption result. The
130
+ * receipt carries the real ready storage-claim reference; the earlier handoff intent does not.
131
+ */
132
+ export interface IReq_PalletLocal_Pallet_ConsumeFleetCutoverVolumeFence
133
+ extends plugins.typedrequestInterfaces.implementsTR<
134
+ plugins.typedrequestInterfaces.ITypedRequest,
135
+ IReq_PalletLocal_Pallet_ConsumeFleetCutoverVolumeFence
136
+ > {
137
+ method: 'consumeFleetCutoverVolumeFence';
138
+ request: {
139
+ fence: IFleetCutoverAcceptedEvidenceReference;
140
+ adoption: IFleetCutoverCorestoreAdoptionReceipt;
141
+ };
142
+ response: { fence: Extract<TFleetCutoverVolumeFence, { state: 'consumed' }> };
143
+ }
144
+
145
+ /**
146
+ * Corestore owns the one-shot initial lineage/RWO CAS. The local caller supplies the held fence
147
+ * and server-owned handoff intent; Corestore returns the claim only after its provider is ready.
148
+ */
149
+ export interface IReq_Pallet_Corestore_AdoptFleetCutoverVolume
150
+ extends plugins.typedrequestInterfaces.implementsTR<
151
+ plugins.typedrequestInterfaces.ITypedRequest,
152
+ IReq_Pallet_Corestore_AdoptFleetCutoverVolume
153
+ > {
154
+ method: 'adoptFleetCutoverVolume';
155
+ request: {
156
+ handoffIntent: IFleetCutoverVolumeHandoffIntent;
157
+ palletFence: Extract<TFleetCutoverVolumeFence, { state: 'held' }>;
158
+ };
159
+ response: { adoption: IFleetCutoverCorestoreAdoptionReceipt };
160
+ }
@@ -16,6 +16,7 @@ import * as deploymentRequests from './deployment.js';
16
16
  import * as dnsRequests from './dns.js';
17
17
  import * as domainRequests from './domain.js';
18
18
  import * as externalRegistryRequests from './externalregistry.js';
19
+ import * as fleetCutoverRequests from './fleetcutover.js';
19
20
  import * as gatewayRequests from './gateway.js';
20
21
  import * as hostedAppRequests from './hostedapp.js';
21
22
  import * as identityRequests from './identity.js';
@@ -55,6 +56,7 @@ export {
55
56
  dnsRequests as dns,
56
57
  domainRequests as domain,
57
58
  externalRegistryRequests as externalRegistry,
59
+ fleetCutoverRequests as fleetcutover,
58
60
  gatewayRequests as gateway,
59
61
  hostedAppRequests as hostedapp,
60
62
  identityRequests as identity,