import * as plugins from '../plugins.js'; import type { IService } from '../data/service.js'; import type { TServiceUpdateWritableData, TServiceWritableData } from '../data/service.js'; import type { IServicePlacement } from '../data/service.js'; import type { IRegistryTarget } from '../data/registry.js'; import type { IIdentity, IIdentityCredential } from '../data/user.js'; import type { IImageRelease } from '../data/immutableimage.js'; import type { IDeploymentPreflightReport, IDeploymentPreflightRequestData } from '../data/deploymentpreflight.js'; import type { IDeploymentReservationInput, IServiceDeploymentOperation, IServiceDeploymentStatus } from '../data/deploymentoperation.js'; import type { TSha256Digest } from '../data/immutableimage.js'; import type { IServiceDeploymentAdoptionInput, IServiceDeploymentAdoptionImagePromotionInput, IServiceDeploymentAdoptionImagePromotionResult, IServiceDeploymentAdoptionRolloutInput, IServiceDeploymentAdoptionRolloutResult, IServiceDeploymentAdoptionPreflightInput, IServiceDeploymentAdoptionReport, IServiceDeploymentAdoptionResult } from '../data/deploymentadoption.js'; export interface IRequest_Any_Cloudly_BootstrapServiceDeploymentAdoptionRollout extends plugins.typedrequestInterfaces.implementsTR { method: 'bootstrapServiceDeploymentAdoptionRollout'; request: IServiceDeploymentAdoptionRolloutInput & { identity: IIdentityCredential; }; response: { result: IServiceDeploymentAdoptionRolloutResult; }; } export interface IRequest_Any_Cloudly_PromoteServiceDeploymentAdoptionImage extends plugins.typedrequestInterfaces.implementsTR { method: 'promoteServiceDeploymentAdoptionImage'; request: IServiceDeploymentAdoptionImagePromotionInput & { identity: IIdentityCredential; }; response: { result: IServiceDeploymentAdoptionImagePromotionResult; }; } export interface IRequest_Any_Cloudly_GetServiceDeploymentAdoptionPreflight extends plugins.typedrequestInterfaces.implementsTR { method: 'getServiceDeploymentAdoptionPreflight'; request: IServiceDeploymentAdoptionPreflightInput & { identity: IIdentityCredential; }; response: { report: IServiceDeploymentAdoptionReport; }; } export interface IRequest_Any_Cloudly_AdoptServiceDeployment extends plugins.typedrequestInterfaces.implementsTR { method: 'adoptServiceDeployment'; request: IServiceDeploymentAdoptionInput & { identity: IIdentityCredential; }; response: { service: IService; result: IServiceDeploymentAdoptionResult; }; } export interface IRequest_Any_Cloudly_GetDeploymentPreflight extends plugins.typedrequestInterfaces.implementsTR { method: 'getDeploymentPreflight'; request: IDeploymentPreflightRequestData & { identity: IIdentityCredential; }; response: { report: IDeploymentPreflightReport; }; } export interface IRequest_Any_Cloudly_GetServiceById extends plugins.typedrequestInterfaces.implementsTR { method: 'getServiceById'; request: { identity: IIdentity; serviceId: string; }; response: { service: IService; }; } export interface IRequest_Any_Cloudly_GetServices extends plugins.typedrequestInterfaces.implementsTR { method: 'getServices'; request: { identity: IIdentity; }; response: { services: IService[]; }; } export interface IRequest_Any_Cloudly_GetServiceRegistryTarget extends plugins.typedrequestInterfaces.implementsTR { method: 'getServiceRegistryTarget'; request: { identity: IIdentity; serviceId: string; tag?: string; }; response: { registryTarget: IRegistryTarget; }; } export interface IRequest_Any_Cloudly_GetServiceImageReleases extends plugins.typedrequestInterfaces.implementsTR { method: 'getServiceImageReleases'; request: { identity: IIdentityCredential; serviceId: string; operationId?: string; }; response: { releases: IImageRelease[]; }; } export interface IRequest_Any_Cloudly_PromoteServiceImageRelease extends plugins.typedrequestInterfaces.implementsTR { method: 'promoteServiceImageRelease'; request: { identity: IIdentityCredential; operationId: string; serviceId: string; releaseId: string; expectedRepository: string; expectedTag: string; expectedDigest: TSha256Digest; expectedOperationRevision: number; idempotencyKey: string; expectedRolloutGeneration: number; expectedCurrentRolloutId?: string; /** Explicitly opts the service into fail-closed immutable deployment. */ enableImmutableImage: true; }; response: { service: IService; operation: IServiceDeploymentOperation; }; } export interface IRequest_Any_Cloudly_RollbackServiceImageRelease extends plugins.typedrequestInterfaces.implementsTR { method: 'rollbackServiceImageRelease'; request: { identity: IIdentityCredential; operationId: string; serviceId: string; releaseId: string; expectedRepository: string; expectedTag: string; expectedDigest: TSha256Digest; expectedOperationRevision: number; idempotencyKey: string; expectedCurrentRolloutId: string; expectedRolloutGeneration: number; }; response: { service: IService; operation: IServiceDeploymentOperation; }; } export interface IRequest_Any_Cloudly_ReserveServiceDeployment extends plugins.typedrequestInterfaces.implementsTR { method: 'reserveServiceDeployment'; request: { identity: IIdentityCredential; } & IDeploymentReservationInput; response: { operation: IServiceDeploymentOperation; registryTarget: IRegistryTarget; }; } export interface IRequest_Any_Cloudly_GetServiceDeploymentStatus extends plugins.typedrequestInterfaces.implementsTR { method: 'getServiceDeploymentStatus'; request: { identity: IIdentityCredential; serviceId: string; operationId: string; }; response: { status: IServiceDeploymentStatus; }; } export interface IRequest_Any_Cloudly_PromoteServiceDeploymentRoute extends plugins.typedrequestInterfaces.implementsTR { method: 'promoteServiceDeploymentRoute'; request: { identity: IIdentityCredential; serviceId: string; operationId: string; expectedOperationRevision: number; expectedRolloutId: string; expectedRolloutGeneration: number; expectedDigest: TSha256Digest; }; response: { status: IServiceDeploymentStatus; }; } export interface IRequest_Any_Cloudly_RetryServiceDeployment extends plugins.typedrequestInterfaces.implementsTR { method: 'retryServiceDeployment'; request: { identity: IIdentityCredential; serviceId: string; operationId: string; expectedOperationRevision: number; }; response: { operation: IServiceDeploymentOperation; }; } export interface IRequest_Any_Cloudly_CleanupServiceDeployment extends plugins.typedrequestInterfaces.implementsTR { method: 'cleanupServiceDeployment'; request: { identity: IIdentityCredential; serviceId: string; operationId: string; expectedOperationRevision: number; }; response: { operation: IServiceDeploymentOperation; }; } export interface IRequest_Any_Cloudly_CreateService extends plugins.typedrequestInterfaces.implementsTR { method: 'createService'; request: { identity: IIdentity; /** Canonical organization authority assigned by Cloudly to the new service. */ organizationId: string; serviceData: TServiceWritableData; }; response: { service: IService; }; } export interface IRequest_Any_Cloudly_UpdateService extends plugins.typedrequestInterfaces.implementsTR { method: 'updateService'; request: { identity: IIdentity; serviceId: string; serviceData: TServiceUpdateWritableData; }; response: { service: IService; }; } /** * Narrow administrative repair for an immutable service whose persisted * placement contradicts its already-active rollout target scope. * * The rollout and status fences make the mutation fail closed if runtime * evidence changes between inspection and repair. */ export interface IRequest_Any_Cloudly_RepairImmutableServicePlacement extends plugins.typedrequestInterfaces.implementsTR { method: 'repairImmutableServicePlacement'; request: { identity: IIdentity; serviceId: string; expectedRolloutId: string; expectedRolloutGeneration: number; expectedRolloutStatusUpdatedAt: number; placement: IServicePlacement; }; response: { service: IService; changed: boolean; }; } export interface IRequest_Any_Cloudly_DeleteServiceById extends plugins.typedrequestInterfaces.implementsTR { method: 'deleteServiceById'; request: { identity: IIdentity; serviceId: string; }; response: { success: boolean; }; }