* gen v1.21.0 * update version converter * bump version to 5 * remove support of netstandard2.0 * update test dependency
275 lines
15 KiB
C#
Generated
275 lines
15 KiB
C#
Generated
// <auto-generated>
|
|
// Code generated by Microsoft (R) AutoRest Code Generator.
|
|
// Changes may cause incorrect behavior and will be lost if the code is
|
|
// regenerated.
|
|
// </auto-generated>
|
|
|
|
namespace k8s.Models
|
|
{
|
|
using Microsoft.Rest;
|
|
using Newtonsoft.Json;
|
|
using System.Linq;
|
|
|
|
/// <summary>
|
|
/// JobSpec describes how the job execution will look like.
|
|
/// </summary>
|
|
public partial class V1JobSpec
|
|
{
|
|
/// <summary>
|
|
/// Initializes a new instance of the V1JobSpec class.
|
|
/// </summary>
|
|
public V1JobSpec()
|
|
{
|
|
CustomInit();
|
|
}
|
|
|
|
/// <summary>
|
|
/// Initializes a new instance of the V1JobSpec class.
|
|
/// </summary>
|
|
/// <param name="template">Describes the pod that will be created when
|
|
/// executing a job. More info:
|
|
/// https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/</param>
|
|
/// <param name="activeDeadlineSeconds">Specifies the duration in
|
|
/// seconds relative to the startTime that the job may be continuously
|
|
/// active before the system tries to terminate it; value must be
|
|
/// positive integer. If a Job is suspended (at creation or through an
|
|
/// update), this timer will effectively be stopped and reset when the
|
|
/// Job is resumed again.</param>
|
|
/// <param name="backoffLimit">Specifies the number of retries before
|
|
/// marking this job failed. Defaults to 6</param>
|
|
/// <param name="completionMode">CompletionMode specifies how Pod
|
|
/// completions are tracked. It can be `NonIndexed` (default) or
|
|
/// `Indexed`.
|
|
///
|
|
/// `NonIndexed` means that the Job is considered complete when there
|
|
/// have been .spec.completions successfully completed Pods. Each Pod
|
|
/// completion is homologous to each other.
|
|
///
|
|
/// `Indexed` means that the Pods of a Job get an associated completion
|
|
/// index from 0 to (.spec.completions - 1), available in the
|
|
/// annotation batch.kubernetes.io/job-completion-index. The Job is
|
|
/// considered complete when there is one successfully completed Pod
|
|
/// for each index. When value is `Indexed`, .spec.completions must be
|
|
/// specified and `.spec.parallelism` must be less than or equal to
|
|
/// 10^5.
|
|
///
|
|
/// This field is alpha-level and is only honored by servers that
|
|
/// enable the IndexedJob feature gate. More completion modes can be
|
|
/// added in the future. If the Job controller observes a mode that it
|
|
/// doesn't recognize, the controller skips updates for the
|
|
/// Job.</param>
|
|
/// <param name="completions">Specifies the desired number of
|
|
/// successfully finished pods the job should be run with. Setting to
|
|
/// nil means that the success of any pod signals the success of all
|
|
/// pods, and allows parallelism to have any positive value. Setting
|
|
/// to 1 means that parallelism is limited to 1 and the success of that
|
|
/// pod signals the success of the job. More info:
|
|
/// https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/</param>
|
|
/// <param name="manualSelector">manualSelector controls generation of
|
|
/// pod labels and pod selectors. Leave `manualSelector` unset unless
|
|
/// you are certain what you are doing. When false or unset, the system
|
|
/// pick labels unique to this job and appends those labels to the pod
|
|
/// template. When true, the user is responsible for picking unique
|
|
/// labels and specifying the selector. Failure to pick a unique label
|
|
/// may cause this and other jobs to not function correctly. However,
|
|
/// You may see `manualSelector=true` in jobs that were created with
|
|
/// the old `extensions/v1beta1` API. More info:
|
|
/// https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/#specifying-your-own-pod-selector</param>
|
|
/// <param name="parallelism">Specifies the maximum desired number of
|
|
/// pods the job should run at any given time. The actual number of
|
|
/// pods running in steady state will be less than this number when
|
|
/// ((.spec.completions - .status.successful) < .spec.parallelism),
|
|
/// i.e. when the work left to do is less than max parallelism. More
|
|
/// info:
|
|
/// https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/</param>
|
|
/// <param name="selector">A label query over pods that should match
|
|
/// the pod count. Normally, the system sets this field for you. More
|
|
/// info:
|
|
/// https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors</param>
|
|
/// <param name="suspend">Suspend specifies whether the Job controller
|
|
/// should create Pods or not. If a Job is created with suspend set to
|
|
/// true, no Pods are created by the Job controller. If a Job is
|
|
/// suspended after creation (i.e. the flag goes from false to true),
|
|
/// the Job controller will delete all active Pods associated with this
|
|
/// Job. Users must design their workload to gracefully handle this.
|
|
/// Suspending a Job will reset the StartTime field of the Job,
|
|
/// effectively resetting the ActiveDeadlineSeconds timer too. This is
|
|
/// an alpha field and requires the SuspendJob feature gate to be
|
|
/// enabled; otherwise this field may not be set to true. Defaults to
|
|
/// false.</param>
|
|
/// <param name="ttlSecondsAfterFinished">ttlSecondsAfterFinished
|
|
/// limits the lifetime of a Job that has finished execution (either
|
|
/// Complete or Failed). If this field is set, ttlSecondsAfterFinished
|
|
/// after the Job finishes, it is eligible to be automatically deleted.
|
|
/// When the Job is being deleted, its lifecycle guarantees (e.g.
|
|
/// finalizers) will be honored. If this field is unset, the Job won't
|
|
/// be automatically deleted. If this field is set to zero, the Job
|
|
/// becomes eligible to be deleted immediately after it finishes. This
|
|
/// field is alpha-level and is only honored by servers that enable the
|
|
/// TTLAfterFinished feature.</param>
|
|
public V1JobSpec(V1PodTemplateSpec template, long? activeDeadlineSeconds = default(long?), int? backoffLimit = default(int?), string completionMode = default(string), int? completions = default(int?), bool? manualSelector = default(bool?), int? parallelism = default(int?), V1LabelSelector selector = default(V1LabelSelector), bool? suspend = default(bool?), int? ttlSecondsAfterFinished = default(int?))
|
|
{
|
|
ActiveDeadlineSeconds = activeDeadlineSeconds;
|
|
BackoffLimit = backoffLimit;
|
|
CompletionMode = completionMode;
|
|
Completions = completions;
|
|
ManualSelector = manualSelector;
|
|
Parallelism = parallelism;
|
|
Selector = selector;
|
|
Suspend = suspend;
|
|
Template = template;
|
|
TtlSecondsAfterFinished = ttlSecondsAfterFinished;
|
|
CustomInit();
|
|
}
|
|
|
|
/// <summary>
|
|
/// An initialization method that performs custom operations like setting defaults
|
|
/// </summary>
|
|
partial void CustomInit();
|
|
|
|
/// <summary>
|
|
/// Gets or sets specifies the duration in seconds relative to the
|
|
/// startTime that the job may be continuously active before the system
|
|
/// tries to terminate it; value must be positive integer. If a Job is
|
|
/// suspended (at creation or through an update), this timer will
|
|
/// effectively be stopped and reset when the Job is resumed again.
|
|
/// </summary>
|
|
[JsonProperty(PropertyName = "activeDeadlineSeconds")]
|
|
public long? ActiveDeadlineSeconds { get; set; }
|
|
|
|
/// <summary>
|
|
/// Gets or sets specifies the number of retries before marking this
|
|
/// job failed. Defaults to 6
|
|
/// </summary>
|
|
[JsonProperty(PropertyName = "backoffLimit")]
|
|
public int? BackoffLimit { get; set; }
|
|
|
|
/// <summary>
|
|
/// Gets or sets completionMode specifies how Pod completions are
|
|
/// tracked. It can be `NonIndexed` (default) or `Indexed`.
|
|
///
|
|
/// `NonIndexed` means that the Job is considered complete when there
|
|
/// have been .spec.completions successfully completed Pods. Each Pod
|
|
/// completion is homologous to each other.
|
|
///
|
|
/// `Indexed` means that the Pods of a Job get an associated completion
|
|
/// index from 0 to (.spec.completions - 1), available in the
|
|
/// annotation batch.kubernetes.io/job-completion-index. The Job is
|
|
/// considered complete when there is one successfully completed Pod
|
|
/// for each index. When value is `Indexed`, .spec.completions must be
|
|
/// specified and `.spec.parallelism` must be less than or equal to
|
|
/// 10^5.
|
|
///
|
|
/// This field is alpha-level and is only honored by servers that
|
|
/// enable the IndexedJob feature gate. More completion modes can be
|
|
/// added in the future. If the Job controller observes a mode that it
|
|
/// doesn't recognize, the controller skips updates for the Job.
|
|
/// </summary>
|
|
[JsonProperty(PropertyName = "completionMode")]
|
|
public string CompletionMode { get; set; }
|
|
|
|
/// <summary>
|
|
/// Gets or sets specifies the desired number of successfully finished
|
|
/// pods the job should be run with. Setting to nil means that the
|
|
/// success of any pod signals the success of all pods, and allows
|
|
/// parallelism to have any positive value. Setting to 1 means that
|
|
/// parallelism is limited to 1 and the success of that pod signals the
|
|
/// success of the job. More info:
|
|
/// https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/
|
|
/// </summary>
|
|
[JsonProperty(PropertyName = "completions")]
|
|
public int? Completions { get; set; }
|
|
|
|
/// <summary>
|
|
/// Gets or sets manualSelector controls generation of pod labels and
|
|
/// pod selectors. Leave `manualSelector` unset unless you are certain
|
|
/// what you are doing. When false or unset, the system pick labels
|
|
/// unique to this job and appends those labels to the pod template.
|
|
/// When true, the user is responsible for picking unique labels and
|
|
/// specifying the selector. Failure to pick a unique label may cause
|
|
/// this and other jobs to not function correctly. However, You may
|
|
/// see `manualSelector=true` in jobs that were created with the old
|
|
/// `extensions/v1beta1` API. More info:
|
|
/// https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/#specifying-your-own-pod-selector
|
|
/// </summary>
|
|
[JsonProperty(PropertyName = "manualSelector")]
|
|
public bool? ManualSelector { get; set; }
|
|
|
|
/// <summary>
|
|
/// Gets or sets specifies the maximum desired number of pods the job
|
|
/// should run at any given time. The actual number of pods running in
|
|
/// steady state will be less than this number when ((.spec.completions
|
|
/// - .status.successful) &lt; .spec.parallelism), i.e. when the
|
|
/// work left to do is less than max parallelism. More info:
|
|
/// https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/
|
|
/// </summary>
|
|
[JsonProperty(PropertyName = "parallelism")]
|
|
public int? Parallelism { get; set; }
|
|
|
|
/// <summary>
|
|
/// Gets or sets a label query over pods that should match the pod
|
|
/// count. Normally, the system sets this field for you. More info:
|
|
/// https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors
|
|
/// </summary>
|
|
[JsonProperty(PropertyName = "selector")]
|
|
public V1LabelSelector Selector { get; set; }
|
|
|
|
/// <summary>
|
|
/// Gets or sets suspend specifies whether the Job controller should
|
|
/// create Pods or not. If a Job is created with suspend set to true,
|
|
/// no Pods are created by the Job controller. If a Job is suspended
|
|
/// after creation (i.e. the flag goes from false to true), the Job
|
|
/// controller will delete all active Pods associated with this Job.
|
|
/// Users must design their workload to gracefully handle this.
|
|
/// Suspending a Job will reset the StartTime field of the Job,
|
|
/// effectively resetting the ActiveDeadlineSeconds timer too. This is
|
|
/// an alpha field and requires the SuspendJob feature gate to be
|
|
/// enabled; otherwise this field may not be set to true. Defaults to
|
|
/// false.
|
|
/// </summary>
|
|
[JsonProperty(PropertyName = "suspend")]
|
|
public bool? Suspend { get; set; }
|
|
|
|
/// <summary>
|
|
/// Gets or sets describes the pod that will be created when executing
|
|
/// a job. More info:
|
|
/// https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/
|
|
/// </summary>
|
|
[JsonProperty(PropertyName = "template")]
|
|
public V1PodTemplateSpec Template { get; set; }
|
|
|
|
/// <summary>
|
|
/// Gets or sets ttlSecondsAfterFinished limits the lifetime of a Job
|
|
/// that has finished execution (either Complete or Failed). If this
|
|
/// field is set, ttlSecondsAfterFinished after the Job finishes, it is
|
|
/// eligible to be automatically deleted. When the Job is being
|
|
/// deleted, its lifecycle guarantees (e.g. finalizers) will be
|
|
/// honored. If this field is unset, the Job won't be automatically
|
|
/// deleted. If this field is set to zero, the Job becomes eligible to
|
|
/// be deleted immediately after it finishes. This field is alpha-level
|
|
/// and is only honored by servers that enable the TTLAfterFinished
|
|
/// feature.
|
|
/// </summary>
|
|
[JsonProperty(PropertyName = "ttlSecondsAfterFinished")]
|
|
public int? TtlSecondsAfterFinished { get; set; }
|
|
|
|
/// <summary>
|
|
/// Validate the object.
|
|
/// </summary>
|
|
/// <exception cref="ValidationException">
|
|
/// Thrown if validation fails
|
|
/// </exception>
|
|
public virtual void Validate()
|
|
{
|
|
if (Template == null)
|
|
{
|
|
throw new ValidationException(ValidationRules.CannotBeNull, "Template");
|
|
}
|
|
if (Template != null)
|
|
{
|
|
Template.Validate();
|
|
}
|
|
}
|
|
}
|
|
}
|