/// <summary> /// Initializes a new instance of the V1beta1Webhook class. /// </summary> /// <param name="clientConfig">ClientConfig defines how to communicate /// with the hook. Required</param> /// <param name="name">The name of the admission webhook. Name should /// be fully qualified, e.g., imagepolicy.kubernetes.io, where /// "imagepolicy" is the name of the webhook, and kubernetes.io is the /// name of the organization. Required.</param> /// <param name="failurePolicy">FailurePolicy defines how unrecognized /// errors from the admission endpoint are handled - allowed values are /// Ignore or Fail. Defaults to Ignore.</param> /// <param name="namespaceSelector">NamespaceSelector decides whether /// to run the webhook on an object based on whether the namespace for /// that object matches the selector. If the object itself is a /// namespace, the matching is performed on object.metadata.labels. If /// the object is another cluster scoped resource, it never skips the /// webhook. /// /// For example, to run the webhook on any objects whose namespace is /// not associated with "runlevel" of "0" or "1"; you will set the /// selector as follows: "namespaceSelector": { /// "matchExpressions": [ /// { /// "key": "runlevel", /// "operator": "NotIn", /// "values": [ /// "0", /// "1" /// ] /// } /// ] /// } /// /// If instead you want to only run the webhook on any objects whose /// namespace is associated with the "environment" of "prod" or /// "staging"; you will set the selector as follows: /// "namespaceSelector": { /// "matchExpressions": [ /// { /// "key": "environment", /// "operator": "In", /// "values": [ /// "prod", /// "staging" /// ] /// } /// ] /// } /// /// See /// https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ /// for more examples of label selectors. /// /// Default to the empty LabelSelector, which matches /// everything.</param> /// <param name="rules">Rules describes what operations on what /// resources/subresources the webhook cares about. The webhook cares /// about an operation if it matches _any_ Rule. However, in order to /// prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks /// from putting the cluster in a state which cannot be recovered from /// without completely disabling the plugin, /// ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never /// called on admission requests for ValidatingWebhookConfiguration and /// MutatingWebhookConfiguration objects.</param> /// <param name="sideEffects">SideEffects states whether this webhookk /// has side effects. Acceptable values are: Unknown, None, Some, /// NoneOnDryRun Webhooks with side effects MUST implement a /// reconciliation system, since a request may be rejected by a future /// step in the admission change and the side effects therefore need to /// be undone. Requests with the dryRun attribute will be auto-rejected /// if they match a webhook with sideEffects == Unknown or Some. /// Defaults to Unknown.</param> public V1beta1Webhook(Admissionregistrationv1beta1WebhookClientConfig clientConfig, string name, string failurePolicy = default(string), V1LabelSelector namespaceSelector = default(V1LabelSelector), IList <V1beta1RuleWithOperations> rules = default(IList <V1beta1RuleWithOperations>), string sideEffects = default(string)) { ClientConfig = clientConfig; FailurePolicy = failurePolicy; Name = name; NamespaceSelector = namespaceSelector; Rules = rules; SideEffects = sideEffects; CustomInit(); }
/// <summary> /// Initializes a new instance of the V1beta1Webhook class. /// </summary> /// <param name="clientConfig">ClientConfig defines how to communicate /// with the hook. Required</param> /// <param name="name">The name of the admission webhook. Name should /// be fully qualified, e.g., imagepolicy.kubernetes.io, where /// "imagepolicy" is the name of the webhook, and kubernetes.io is the /// name of the organization. Required.</param> /// <param name="admissionReviewVersions">AdmissionReviewVersions is an /// ordered list of preferred `AdmissionReview` versions the Webhook /// expects. API server will try to use first version in the list which /// it supports. If none of the versions specified in this list /// supported by API server, validation will fail for this object. If a /// persisted webhook configuration specifies allowed versions and does /// not include any versions known to the API Server, calls to the /// webhook will fail and be subject to the failure policy. Default to /// `['v1beta1']`.</param> /// <param name="failurePolicy">FailurePolicy defines how unrecognized /// errors from the admission endpoint are handled - allowed values are /// Ignore or Fail. Defaults to Ignore.</param> /// <param name="namespaceSelector">NamespaceSelector decides whether /// to run the webhook on an object based on whether the namespace for /// that object matches the selector. If the object itself is a /// namespace, the matching is performed on object.metadata.labels. If /// the object is another cluster scoped resource, it never skips the /// webhook. /// /// For example, to run the webhook on any objects whose namespace is /// not associated with "runlevel" of "0" or "1"; you will set the /// selector as follows: "namespaceSelector": { /// "matchExpressions": [ /// { /// "key": "runlevel", /// "operator": "NotIn", /// "values": [ /// "0", /// "1" /// ] /// } /// ] /// } /// /// If instead you want to only run the webhook on any objects whose /// namespace is associated with the "environment" of "prod" or /// "staging"; you will set the selector as follows: /// "namespaceSelector": { /// "matchExpressions": [ /// { /// "key": "environment", /// "operator": "In", /// "values": [ /// "prod", /// "staging" /// ] /// } /// ] /// } /// /// See /// https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ /// for more examples of label selectors. /// /// Default to the empty LabelSelector, which matches /// everything.</param> /// <param name="rules">Rules describes what operations on what /// resources/subresources the webhook cares about. The webhook cares /// about an operation if it matches _any_ Rule. However, in order to /// prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks /// from putting the cluster in a state which cannot be recovered from /// without completely disabling the plugin, /// ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never /// called on admission requests for ValidatingWebhookConfiguration and /// MutatingWebhookConfiguration objects.</param> /// <param name="sideEffects">SideEffects states whether this webhookk /// has side effects. Acceptable values are: Unknown, None, Some, /// NoneOnDryRun Webhooks with side effects MUST implement a /// reconciliation system, since a request may be rejected by a future /// step in the admission change and the side effects therefore need to /// be undone. Requests with the dryRun attribute will be auto-rejected /// if they match a webhook with sideEffects == Unknown or Some. /// Defaults to Unknown.</param> /// <param name="timeoutSeconds">TimeoutSeconds specifies the timeout /// for this webhook. After the timeout passes, the webhook call will /// be ignored or the API call will fail based on the failure policy. /// The timeout value must be between 1 and 30 seconds. Default to 30 /// seconds.</param> public V1beta1Webhook(Admissionregistrationv1beta1WebhookClientConfig clientConfig, string name, IList <string> admissionReviewVersions = default(IList <string>), string failurePolicy = default(string), V1LabelSelector namespaceSelector = default(V1LabelSelector), IList <V1beta1RuleWithOperations> rules = default(IList <V1beta1RuleWithOperations>), string sideEffects = default(string), int?timeoutSeconds = default(int?)) { AdmissionReviewVersions = admissionReviewVersions; ClientConfig = clientConfig; FailurePolicy = failurePolicy; Name = name; NamespaceSelector = namespaceSelector; Rules = rules; SideEffects = sideEffects; TimeoutSeconds = timeoutSeconds; CustomInit(); }