Files
OPC/ControlPlane.Core/Models/ComponentMode.cs
T

30 lines
1.0 KiB
C#

using System.Text.Json.Serialization;
namespace ControlPlane.Core.Models;
/// <summary>
/// Defines where a specific infrastructure component (Postgres, Keycloak, Vault, MinIO)
/// is hosted for a given tenant. Each component in a StackConfig is configured independently.
/// </summary>
[JsonConverter(typeof(JsonStringEnumConverter))]
public enum ComponentMode
{
/// <summary>Shared platform instance — logical slice only (realm, schema, bucket, namespace).</summary>
SharedPlatform,
/// <summary>Baked into the app image itself via supervisord. Trial tier only.</summary>
Bundled,
/// <summary>Own sidecar container on ControlPlane's shared Docker host.</summary>
OwnContainer,
/// <summary>Own VM with the component running inside Docker on it.</summary>
VpsDocker,
/// <summary>Own VM with the component running as a native OS process (no Docker).</summary>
VpsBareMetal,
/// <summary>Component is not provisioned for this tenant (feature not elected).</summary>
Disabled
}