File: Resources\IngressTLSV1.cs
Web Access
Project: src\src\Aspire.Hosting.Kubernetes\Aspire.Hosting.Kubernetes.csproj (Aspire.Hosting.Kubernetes)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
 
using YamlDotNet.Serialization;
 
namespace Aspire.Hosting.Kubernetes.Resources;
 
/// <summary>
/// Represents the TLS configuration for an Ingress resource in Kubernetes (networking.k8s.io/v1).
/// </summary>
/// <remarks>
/// This class defines the Transport Layer Security (TLS) settings for securing Ingress traffic
/// to one or more hosts. It specifies the details such as the associated secret that contains
/// the TLS certificate and key, and the list of hosts to which the TLS settings apply.
/// </remarks>
[YamlSerializable]
public sealed class IngressTLSV1
{
    /// <summary>
    /// Represents the name of the Kubernetes Secret containing the TLS certificate and key.
    /// This property is used to secure communication for the specified hosts in an ingress resource.
    /// </summary>
    [YamlMember(Alias = "secretName")]
    public string SecretName { get; set; } = null!;
 
    /// <summary>
    /// Gets a list of hostnames associated with the ingress TLS configuration.
    /// </summary>
    /// <remarks>
    /// This property represents a collection of hosts that are specified for
    /// the ingress TLS configuration. These hosts are used for secure transport
    /// and typically represent domain names that are covered by the associated
    /// TLS secret. The list may contain multiple entries depending on the
    /// assigned hosts.
    /// </remarks>
    [YamlMember(Alias = "hosts")]
    public List<string> Hosts { get; } = [];
}