@serve.zone/interfaces 32.24.0 → 32.26.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.
@@ -4,6 +4,7 @@ import type { ICluster } from '../data/cluster.js';
4
4
  import type { IClusterNode, INodeAction, INodeMetricsSample, TNodeActionName } from '../data/clusternode.js';
5
5
  import type { IDeployment } from '../data/deployment.js';
6
6
  import type { IIdentity } from '../data/user.js';
7
+ import type { IPlatformObjectStorageEndpoint } from '../platform/objectstorage.js';
7
8
  import type {
8
9
  INodeCredentialMetadata,
9
10
  INodeCredentialMutationPreconditions,
@@ -282,6 +283,38 @@ export interface IReq_Any_Cloudly_SetClusterNodeCorestoreEndpoint extends plugin
282
283
  };
283
284
  }
284
285
 
286
+ /**
287
+ * An administrator states where a workload on one node reaches the node's Corestore object
288
+ * storage, and the region it signs for: `IClusterNode.data.corestoreObjectStorage`.
289
+ *
290
+ * A request of its own, separate from `setClusterNodeCorestoreEndpoint`, because the two are
291
+ * separate facts with separate readers — the relay dials the control endpoint, a workload dials
292
+ * this one — and setting one never touches the other. A caller that states only the control
293
+ * endpoint leaves this one as it stands.
294
+ *
295
+ * Cloudly validates it with `validatePlatformObjectStorageEndpoint` before it writes and takes the
296
+ * node's own real-write fence inside the writing transaction, as for the control endpoint.
297
+ * `objectStorage: null` clears it, which is the same fact as never having set one: no
298
+ * object-storage environment can be composed for a binding on this node. The endpoint says where,
299
+ * never with what — no credential travels in this request or in the node document.
300
+ */
301
+ export interface IReq_Any_Cloudly_SetClusterNodeCorestoreObjectStorageEndpoint extends plugins.typedrequestInterfaces.implementsTR<
302
+ plugins.typedrequestInterfaces.ITypedRequest,
303
+ IReq_Any_Cloudly_SetClusterNodeCorestoreObjectStorageEndpoint
304
+ > {
305
+ method: 'setClusterNodeCorestoreObjectStorageEndpoint';
306
+ request: {
307
+ identity: IIdentity;
308
+ nodeId: string;
309
+ /** The node's object-storage endpoint and region, or `null` to state that it has none. */
310
+ objectStorage: IPlatformObjectStorageEndpoint | null;
311
+ };
312
+ response: {
313
+ /** The node as it now stands, so a caller needs no second read to see what it set. */
314
+ node: IClusterNode;
315
+ };
316
+ }
317
+
285
318
  export interface IReq_Any_Cloudly_CreateNodeAction extends plugins.typedrequestInterfaces.implementsTR<
286
319
  plugins.typedrequestInterfaces.ITypedRequest,
287
320
  IReq_Any_Cloudly_CreateNodeAction