| File: Resources\ManagedFieldsEntryV1.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 an entry detailing managed fields within a Kubernetes resource metadata. /// </summary> /// <remarks> /// This class provides information about the field-level changes made to a Kubernetes object. /// It includes details such as the fields affected, the manager responsible for the changes, /// the operation performed, and the API version used during the modification. /// </remarks> [YamlSerializable] public sealed class ManagedFieldsEntryV1 { /// <summary> /// Represents a structure used for describing serialized field data in Kubernetes resources. /// </summary> /// <remarks> /// This class is part of the Kubernetes resource management utilities and allows /// for defining field-level information associated with Kubernetes objects. It is /// generally used in conjunction with <see cref="ManagedFieldsEntryV1"/> to provide /// detailed information about managed fields within a Kubernetes resource object. /// </remarks> [YamlMember(Alias = "fieldsV1")] public FieldsV1 FieldsV1 { get; set; } = new(); /// <summary> /// Represents the type of managed fields for a Kubernetes resource. /// </summary> /// <remarks> /// The FieldsType property identifies the type of field management information /// associated with a Kubernetes resource entry. It is part of the serialization /// structure for managed fields in Kubernetes. /// </remarks> [YamlMember(Alias = "fieldsType")] public string FieldsType { get; set; } = null!; /// <summary> /// Gets or sets the subresource associated with the managed fields entry. /// </summary> /// <remarks> /// This property specifies the subresource of the Kubernetes object that the managed fields /// are applied to. It is typically used to provide context about the specific subresource /// being accessed or managed. /// </remarks> [YamlMember(Alias = "subresource")] public string Subresource { get; set; } = null!; /// <summary> /// Gets or sets the timestamp indicating the time of the operation described in the managed fields entry. /// </summary> /// <remarks> /// Represents the date and time of the action associated with this entry in the managed fields. /// The value is nullable, meaning it can be null if the time is not specified or unavailable. /// </remarks> [YamlMember(Alias = "time")] public DateTime? Time { get; set; } /// <summary> /// Gets or sets the API version of the resource being managed. /// </summary> /// <remarks> /// This property represents the API version used in the managed fields entry. /// It is a critical component for versioning resources in Kubernetes and /// ensures compatibility with the defined API specifications. /// </remarks> [YamlMember(Alias = "apiVersion")] public string ApiVersion { get; set; } = null!; /// <summary> /// Represents the operation type performed on the Kubernetes resource. /// </summary> /// <remarks> /// The Operation property specifies the type of operation (e.g., Apply, Update, etc.) /// that was executed on the managed resource. It is used to track the state changes /// performed by various controllers or users in the Kubernetes system. /// </remarks> [YamlMember(Alias = "operation")] public string Operation { get; set; } = null!; /// <summary> /// Gets or sets the name of the entity, application, or process that is managing the resource. /// </summary> /// <remarks> /// The Manager property identifies the controller or user responsible for making updates or changes /// to the managed fields. This information is typically used for auditing and tracking purposes /// within Kubernetes-managed resources. /// </remarks> [YamlMember(Alias = "manager")] public string Manager { get; set; } = null!; }