//
// Code generated by Microsoft (R) AutoRest Code Generator.
// Changes may cause incorrect behavior and will be lost if the code is
// regenerated.
//
namespace k8s.Models
{
using Newtonsoft.Json;
using System.Linq;
///
/// SecurityContext holds security configuration that will be applied to a
/// container. Some fields are present in both SecurityContext and
/// PodSecurityContext. When both are set, the values in SecurityContext
/// take precedence.
///
public partial class V1SecurityContext
{
///
/// Initializes a new instance of the V1SecurityContext class.
///
public V1SecurityContext()
{
CustomInit();
}
///
/// Initializes a new instance of the V1SecurityContext class.
///
/// AllowPrivilegeEscalation
/// controls whether a process can gain more privileges than its parent
/// process. This bool directly controls if the no_new_privs flag will
/// be set on the container process. AllowPrivilegeEscalation is true
/// always when the container is: 1) run as Privileged 2) has
/// CAP_SYS_ADMIN
/// The capabilities to add/drop when
/// running containers. Defaults to the default set of capabilities
/// granted by the container runtime.
/// Run container in privileged mode.
/// Processes in privileged containers are essentially equivalent to
/// root on the host. Defaults to false.
/// Whether this container has a
/// read-only root filesystem. Default is false.
/// The GID to run the entrypoint of the
/// container process. Uses runtime default if unset. May also be set
/// in PodSecurityContext. If set in both SecurityContext and
/// PodSecurityContext, the value specified in SecurityContext takes
/// precedence.
/// Indicates that the container must run as
/// a non-root user. If true, the Kubelet will validate the image at
/// runtime to ensure that it does not run as UID 0 (root) and fail to
/// start the container if it does. If unset or false, no such
/// validation will be performed. May also be set in
/// PodSecurityContext. If set in both SecurityContext and
/// PodSecurityContext, the value specified in SecurityContext takes
/// precedence.
/// The UID to run the entrypoint of the
/// container process. Defaults to user specified in image metadata if
/// unspecified. May also be set in PodSecurityContext. If set in both
/// SecurityContext and PodSecurityContext, the value specified in
/// SecurityContext takes precedence.
/// The SELinux context to be applied to
/// the container. If unspecified, the container runtime will allocate
/// a random SELinux context for each container. May also be set in
/// PodSecurityContext. If set in both SecurityContext and
/// PodSecurityContext, the value specified in SecurityContext takes
/// precedence.
public V1SecurityContext(bool? allowPrivilegeEscalation = default(bool?), V1Capabilities capabilities = default(V1Capabilities), bool? privileged = default(bool?), bool? readOnlyRootFilesystem = default(bool?), long? runAsGroup = default(long?), bool? runAsNonRoot = default(bool?), long? runAsUser = default(long?), V1SELinuxOptions seLinuxOptions = default(V1SELinuxOptions))
{
AllowPrivilegeEscalation = allowPrivilegeEscalation;
Capabilities = capabilities;
Privileged = privileged;
ReadOnlyRootFilesystem = readOnlyRootFilesystem;
RunAsGroup = runAsGroup;
RunAsNonRoot = runAsNonRoot;
RunAsUser = runAsUser;
SeLinuxOptions = seLinuxOptions;
CustomInit();
}
///
/// An initialization method that performs custom operations like setting defaults
///
partial void CustomInit();
///
/// Gets or sets allowPrivilegeEscalation controls whether a process
/// can gain more privileges than its parent process. This bool
/// directly controls if the no_new_privs flag will be set on the
/// container process. AllowPrivilegeEscalation is true always when the
/// container is: 1) run as Privileged 2) has CAP_SYS_ADMIN
///
[JsonProperty(PropertyName = "allowPrivilegeEscalation")]
public bool? AllowPrivilegeEscalation { get; set; }
///
/// Gets or sets the capabilities to add/drop when running containers.
/// Defaults to the default set of capabilities granted by the
/// container runtime.
///
[JsonProperty(PropertyName = "capabilities")]
public V1Capabilities Capabilities { get; set; }
///
/// Gets or sets run container in privileged mode. Processes in
/// privileged containers are essentially equivalent to root on the
/// host. Defaults to false.
///
[JsonProperty(PropertyName = "privileged")]
public bool? Privileged { get; set; }
///
/// Gets or sets whether this container has a read-only root
/// filesystem. Default is false.
///
[JsonProperty(PropertyName = "readOnlyRootFilesystem")]
public bool? ReadOnlyRootFilesystem { get; set; }
///
/// Gets or sets the GID to run the entrypoint of the container
/// process. Uses runtime default if unset. May also be set in
/// PodSecurityContext. If set in both SecurityContext and
/// PodSecurityContext, the value specified in SecurityContext takes
/// precedence.
///
[JsonProperty(PropertyName = "runAsGroup")]
public long? RunAsGroup { get; set; }
///
/// Gets or sets indicates that the container must run as a non-root
/// user. If true, the Kubelet will validate the image at runtime to
/// ensure that it does not run as UID 0 (root) and fail to start the
/// container if it does. If unset or false, no such validation will be
/// performed. May also be set in PodSecurityContext. If set in both
/// SecurityContext and PodSecurityContext, the value specified in
/// SecurityContext takes precedence.
///
[JsonProperty(PropertyName = "runAsNonRoot")]
public bool? RunAsNonRoot { get; set; }
///
/// Gets or sets the UID to run the entrypoint of the container
/// process. Defaults to user specified in image metadata if
/// unspecified. May also be set in PodSecurityContext. If set in both
/// SecurityContext and PodSecurityContext, the value specified in
/// SecurityContext takes precedence.
///
[JsonProperty(PropertyName = "runAsUser")]
public long? RunAsUser { get; set; }
///
/// Gets or sets the SELinux context to be applied to the container. If
/// unspecified, the container runtime will allocate a random SELinux
/// context for each container. May also be set in PodSecurityContext.
/// If set in both SecurityContext and PodSecurityContext, the value
/// specified in SecurityContext takes precedence.
///
[JsonProperty(PropertyName = "seLinuxOptions")]
public V1SELinuxOptions SeLinuxOptions { get; set; }
}
}