| File: Resources\ResourceAttributesV1.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 attributes of a resource in Kubernetes. /// This class facilitates the definition of resource attributes for Kubernetes objects, /// including identifiers like name, namespace, and resource type, as well as selectors /// for field and label-based filtering. /// </summary> [YamlSerializable] public sealed class ResourceAttributesV1 { /// <summary> /// Represents the action or operation to be performed on a Kubernetes resource. /// The verb typically corresponds to a REST API operation (e.g., "get", "list", "create") /// that is associated with the specified resource, namespace, or group. /// </summary> [YamlMember(Alias = "verb")] public string? Verb { get; set; } /// <summary> /// Gets or sets the name of the Kubernetes resource. /// Represents the identifier of a specific resource instance within a particular resource type. /// </summary> [YamlMember(Alias = "name")] public string? Name { get; set; } /// <summary> /// Gets or sets the namespace of the Kubernetes resource. /// The namespace provides a mechanism for isolating groups or sets of resources within a Kubernetes cluster. /// If not specified, the default namespace is often used. /// </summary> [YamlMember(Alias = "namespace")] public string? Namespace { get; set; } /// <summary> /// Represents the name of the resource to which the attributes are associated. /// This property specifies the target resource in a Kubernetes environment and is used /// for identifying and managing the specific resource within the namespace. /// </summary> [YamlMember(Alias = "resource")] public string? Resource { get; set; } /// <summary> /// Gets or sets the subresource associated with the Kubernetes resource. /// A subresource represents a component or subpart of the primary resource, /// commonly used to interact with specific operations or views of the resource. /// </summary> [YamlMember(Alias = "subresource")] public string? Subresource { get; set; } /// <summary> /// Represents the API version of the Kubernetes resource. /// This property specifies the version of the Kubernetes API that the resource belongs to. /// </summary> [YamlMember(Alias = "version")] public string? Version { get; set; } /// <summary> /// Gets or sets the API group of the Kubernetes resource. /// The group is a way to categorize resources in Kubernetes, typically used along with /// the resource and version to identify a specific API resource. /// Examples of API groups might include "apps", "core", or custom API groups defined by an extension. /// </summary> [YamlMember(Alias = "group")] public string? Group { get; set; } /// <summary> /// Represents the field selector attribute used in Kubernetes resources. /// This property is used to define field-based filtering criteria for the resource. /// The field selector matches resources based on their specific field attributes. /// </summary> [YamlMember(Alias = "fieldSelector")] public FieldSelectorAttributesV1? FieldSelector { get; set; } /// <summary> /// Represents the label selector attributes used to filter Kubernetes resources /// based on their labels. It allows specifying raw selector queries and detailed /// requirements for more granular control of resource selection. /// </summary> [YamlMember(Alias = "labelSelector")] public LabelSelectorAttributesV1? LabelSelector { get; set; } }