CommunicationLifecycleDto
Namespace: Meshmakers.Octo.Communication.Contracts.DataTransferObjects
Per-tenant communication lifecycle configuration (AB#4914), exposed via
GET/PUT {tenantId}/v1/communication/lifecycle. Runtime configuration — set per
tenant via octo-cli / Studio, no controller redeploy involved.
public record CommunicationLifecycleDto : IEquatable<CommunicationLifecycleDto>
Inheritance Object → CommunicationLifecycleDto
Implements IEquatable<CommunicationLifecycleDto>
Properties
ScaleToZeroEnabled
Master switch for scale-to-zero on the tenant (default false). Even a workload with
LifecycleMode=OnDemand is never hibernated while this is off; switching it off is
the emergency stop (the idle watchdog stops hibernating, already-hibernated workloads
wake on next demand or via the wake API).
public bool ScaleToZeroEnabled { get; set; }
Property Value
LeasingEnabled
Master switch for adapter-pool leasing on the tenant (AB#4924, default false). It governs both halves of a lease and the tenant means a different thing in each, which is why one flag is enough: on the lending tenant it is "this tenant's pools hand their members out", and on the borrowing tenant it is "this tenant's Leased adapters get scheduled". A lease needs both to be on — lending is the lender's capability, borrowing is the borrower's, and neither tenant can assert the other's (concept §13).
🔴 Switching it off holds the queue; it neither drains it nor cancels it. Work
already Queued stays Queued and visible in all three queue surfaces, no new
work is enqueued and no lease is granted. Draining would mean "off" still runs the next
hour of work; cancelling would destroy work an operator never asked to lose. Turning the
switch back on resumes the queue in its original order; DELETE {tenantId}/v1/adapterPool/{id}/queue/{executionId} is how an operator discards it.
public bool LeasingEnabled { get; set; }
Property Value
Constructors
CommunicationLifecycleDto(Boolean, Boolean)
Per-tenant communication lifecycle configuration (AB#4914), exposed via
GET/PUT {tenantId}/v1/communication/lifecycle. Runtime configuration — set per
tenant via octo-cli / Studio, no controller redeploy involved.
public CommunicationLifecycleDto(bool ScaleToZeroEnabled, bool LeasingEnabled)
Parameters
ScaleToZeroEnabled Boolean
Master switch for scale-to-zero on the tenant (default false). Even a workload with
LifecycleMode=OnDemand is never hibernated while this is off; switching it off is
the emergency stop (the idle watchdog stops hibernating, already-hibernated workloads
wake on next demand or via the wake API).
LeasingEnabled Boolean
Master switch for adapter-pool leasing on the tenant (AB#4924, default false). It governs
both halves of a lease and the tenant means a different thing in each, which is why one
flag is enough: on the lending tenant it is "this tenant's pools hand their members
out", and on the borrowing tenant it is "this tenant's Leased adapters get scheduled".
A lease needs both to be on — lending is the lender's capability, borrowing is the borrower's,
and neither tenant can assert the other's (concept §13).
🔴 Switching it off holds the queue; it neither drains it nor cancels it. Work
already Queued stays Queued and visible in all three queue surfaces, no new
work is enqueued and no lease is granted. Draining would mean "off" still runs the next
hour of work; cancelling would destroy work an operator never asked to lose. Turning the
switch back on resumes the queue in its original order; DELETE {tenantId}/v1/adapterPool/{id}/queue/{executionId} is how an operator discards it.