File: //snap/google-cloud-cli/394/lib/third_party/kubernetes/client/models/v1beta1_webhook.py
# coding: utf-8
"""
Kubernetes
No description provided (generated by Swagger Codegen
https://github.com/swagger-api/swagger-codegen)
OpenAPI spec version: v1.14.4
Generated by: https://github.com/swagger-api/swagger-codegen.git
"""
from pprint import pformat
from six import iteritems
import re
class V1beta1Webhook(object):
"""
NOTE: This class is auto generated by the swagger code generator program.
Do not edit the class manually.
"""
"""
Attributes:
swagger_types (dict): The key is attribute name and the value is attribute
type.
attribute_map (dict): The key is attribute name and the value is json key
in definition.
"""
swagger_types = {
'admission_review_versions': 'list[str]',
'client_config': 'AdmissionregistrationV1beta1WebhookClientConfig',
'failure_policy': 'str',
'name': 'str',
'namespace_selector': 'V1LabelSelector',
'rules': 'list[V1beta1RuleWithOperations]',
'side_effects': 'str',
'timeout_seconds': 'int'
}
attribute_map = {
'admission_review_versions': 'admissionReviewVersions',
'client_config': 'clientConfig',
'failure_policy': 'failurePolicy',
'name': 'name',
'namespace_selector': 'namespaceSelector',
'rules': 'rules',
'side_effects': 'sideEffects',
'timeout_seconds': 'timeoutSeconds'
}
def __init__(self,
admission_review_versions=None,
client_config=None,
failure_policy=None,
name=None,
namespace_selector=None,
rules=None,
side_effects=None,
timeout_seconds=None):
"""
V1beta1Webhook - a model defined in Swagger
"""
self._admission_review_versions = None
self._client_config = None
self._failure_policy = None
self._name = None
self._namespace_selector = None
self._rules = None
self._side_effects = None
self._timeout_seconds = None
self.discriminator = None
if admission_review_versions is not None:
self.admission_review_versions = admission_review_versions
self.client_config = client_config
if failure_policy is not None:
self.failure_policy = failure_policy
self.name = name
if namespace_selector is not None:
self.namespace_selector = namespace_selector
if rules is not None:
self.rules = rules
if side_effects is not None:
self.side_effects = side_effects
if timeout_seconds is not None:
self.timeout_seconds = timeout_seconds
@property
def admission_review_versions(self):
"""
Gets the admission_review_versions of this V1beta1Webhook.
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']`.
:return: The admission_review_versions of this V1beta1Webhook.
:rtype: list[str]
"""
return self._admission_review_versions
@admission_review_versions.setter
def admission_review_versions(self, admission_review_versions):
"""
Sets the admission_review_versions of this V1beta1Webhook.
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 admission_review_versions: The admission_review_versions of this
V1beta1Webhook.
:type: list[str]
"""
self._admission_review_versions = admission_review_versions
@property
def client_config(self):
"""
Gets the client_config of this V1beta1Webhook.
ClientConfig defines how to communicate with the hook. Required
:return: The client_config of this V1beta1Webhook.
:rtype: AdmissionregistrationV1beta1WebhookClientConfig
"""
return self._client_config
@client_config.setter
def client_config(self, client_config):
"""
Sets the client_config of this V1beta1Webhook.
ClientConfig defines how to communicate with the hook. Required
:param client_config: The client_config of this V1beta1Webhook.
:type: AdmissionregistrationV1beta1WebhookClientConfig
"""
if client_config is None:
raise ValueError('Invalid value for `client_config`, must not be `None`')
self._client_config = client_config
@property
def failure_policy(self):
"""
Gets the failure_policy of this V1beta1Webhook.
FailurePolicy defines how unrecognized errors from the admission
endpoint are handled - allowed values are Ignore or Fail. Defaults to
Ignore.
:return: The failure_policy of this V1beta1Webhook.
:rtype: str
"""
return self._failure_policy
@failure_policy.setter
def failure_policy(self, failure_policy):
"""
Sets the failure_policy of this V1beta1Webhook.
FailurePolicy defines how unrecognized errors from the admission
endpoint are handled - allowed values are Ignore or Fail. Defaults to
Ignore.
:param failure_policy: The failure_policy of this V1beta1Webhook.
:type: str
"""
self._failure_policy = failure_policy
@property
def name(self):
"""
Gets the name of this V1beta1Webhook.
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.
:return: The name of this V1beta1Webhook.
:rtype: str
"""
return self._name
@name.setter
def name(self, name):
"""
Sets the name of this V1beta1Webhook.
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 name: The name of this V1beta1Webhook.
:type: str
"""
if name is None:
raise ValueError('Invalid value for `name`, must not be `None`')
self._name = name
@property
def namespace_selector(self):
"""
Gets the namespace_selector of this V1beta1Webhook.
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.
:return: The namespace_selector of this V1beta1Webhook.
:rtype: V1LabelSelector
"""
return self._namespace_selector
@namespace_selector.setter
def namespace_selector(self, namespace_selector):
"""
Sets the namespace_selector of this V1beta1Webhook.
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 namespace_selector: The namespace_selector of this
V1beta1Webhook.
:type: V1LabelSelector
"""
self._namespace_selector = namespace_selector
@property
def rules(self):
"""
Gets the rules of this V1beta1Webhook.
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.
:return: The rules of this V1beta1Webhook.
:rtype: list[V1beta1RuleWithOperations]
"""
return self._rules
@rules.setter
def rules(self, rules):
"""
Sets the rules of this V1beta1Webhook.
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 rules: The rules of this V1beta1Webhook.
:type: list[V1beta1RuleWithOperations]
"""
self._rules = rules
@property
def side_effects(self):
"""
Gets the side_effects of this V1beta1Webhook.
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.
:return: The side_effects of this V1beta1Webhook.
:rtype: str
"""
return self._side_effects
@side_effects.setter
def side_effects(self, side_effects):
"""
Sets the side_effects of this V1beta1Webhook.
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 side_effects: The side_effects of this V1beta1Webhook.
:type: str
"""
self._side_effects = side_effects
@property
def timeout_seconds(self):
"""
Gets the timeout_seconds of this V1beta1Webhook.
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.
:return: The timeout_seconds of this V1beta1Webhook.
:rtype: int
"""
return self._timeout_seconds
@timeout_seconds.setter
def timeout_seconds(self, timeout_seconds):
"""
Sets the timeout_seconds of this V1beta1Webhook.
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 timeout_seconds: The timeout_seconds of this V1beta1Webhook.
:type: int
"""
self._timeout_seconds = timeout_seconds
def to_dict(self):
"""
Returns the model properties as a dict
"""
result = {}
for attr, _ in iteritems(self.swagger_types):
value = getattr(self, attr)
if isinstance(value, list):
result[attr] = list(
map(lambda x: x.to_dict() if hasattr(x, 'to_dict') else x, value))
elif hasattr(value, 'to_dict'):
result[attr] = value.to_dict()
elif isinstance(value, dict):
result[attr] = dict(
map(
lambda item: (item[0], item[1].to_dict())
if hasattr(item[1], 'to_dict') else item, value.items()))
else:
result[attr] = value
return result
def to_str(self):
"""
Returns the string representation of the model
"""
return pformat(self.to_dict())
def __repr__(self):
"""
For `print` and `pprint`
"""
return self.to_str()
def __eq__(self, other):
"""
Returns true if both objects are equal
"""
if not isinstance(other, V1beta1Webhook):
return False
return self.__dict__ == other.__dict__
def __ne__(self, other):
"""
Returns true if both objects are not equal
"""
return not self == other