//
// Code generated by https://github.com/kubernetes-client/csharp/tree/master/gen/KubernetesGenerator
// Changes may cause incorrect behavior and will be lost if the code is
// regenerated.
//
namespace k8s.Models
{
using Microsoft.Rest;
using Newtonsoft.Json;
using System.Collections.Generic;
using System.Collections;
using System.Linq;
///
/// Adapts a ConfigMap into a volume.
///
/// The contents of the target ConfigMap's Data field will be presented in a volume
/// as files using the keys in the Data field as the file names, unless the items
/// element is populated with specific mappings of keys to paths. ConfigMap volumes
/// support ownership management and SELinux relabeling.
///
public partial class V1ConfigMapVolumeSource
{
///
/// Initializes a new instance of the V1ConfigMapVolumeSource class.
///
public V1ConfigMapVolumeSource()
{
CustomInit();
}
///
/// Initializes a new instance of the V1ConfigMapVolumeSource class.
///
///
/// Optional: mode bits used to set permissions on created files by default. Must be
/// an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML
/// accepts both octal and decimal values, JSON requires decimal values for mode
/// bits. Defaults to 0644. Directories within the path are not affected by this
/// setting. This might be in conflict with other options that affect the file mode,
/// like fsGroup, and the result can be other mode bits set.
///
///
/// If unspecified, each key-value pair in the Data field of the referenced
/// ConfigMap will be projected into the volume as a file whose name is the key and
/// content is the value. If specified, the listed keys will be projected into the
/// specified paths, and unlisted keys will not be present. If a key is specified
/// which is not present in the ConfigMap, the volume setup will error unless it is
/// marked optional. Paths must be relative and may not contain the '..' path or
/// start with '..'.
///
///
/// Name of the referent. More info:
/// https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
///
///
/// Specify whether the ConfigMap or its keys must be defined
///
public V1ConfigMapVolumeSource(int? defaultMode = null, IList items = null, string name = null, bool? optional = null)
{
DefaultMode = defaultMode;
Items = items;
Name = name;
Optional = optional;
CustomInit();
}
///
/// An initialization method that performs custom operations like setting defaults
///
partial void CustomInit();
///
/// Optional: mode bits used to set permissions on created files by default. Must be
/// an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML
/// accepts both octal and decimal values, JSON requires decimal values for mode
/// bits. Defaults to 0644. Directories within the path are not affected by this
/// setting. This might be in conflict with other options that affect the file mode,
/// like fsGroup, and the result can be other mode bits set.
///
[JsonProperty(PropertyName = "defaultMode")]
public int? DefaultMode { get; set; }
///
/// If unspecified, each key-value pair in the Data field of the referenced
/// ConfigMap will be projected into the volume as a file whose name is the key and
/// content is the value. If specified, the listed keys will be projected into the
/// specified paths, and unlisted keys will not be present. If a key is specified
/// which is not present in the ConfigMap, the volume setup will error unless it is
/// marked optional. Paths must be relative and may not contain the '..' path or
/// start with '..'.
///
[JsonProperty(PropertyName = "items")]
public IList Items { get; set; }
///
/// Name of the referent. More info:
/// https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
///
[JsonProperty(PropertyName = "name")]
public string Name { get; set; }
///
/// Specify whether the ConfigMap or its keys must be defined
///
[JsonProperty(PropertyName = "optional")]
public bool? Optional { get; set; }
///
/// Validate the object.
///
///
/// Thrown if validation fails
///
public virtual void Validate()
{
foreach(var obj in Items)
{
obj.Validate();
}
}
}
}