30 lines
1.0 KiB
C#
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
|
|
}
|