18 from typing
import Any, Dict
20 from google.rpc
import code_pb2
25 logger = logging.getLogger(__name__)
31 @dataclasses.dataclass(frozen=
True)
35 server_certificate: dict
42 Any]) ->
'ServerTlsPolicy':
45 server_certificate=response.get(
'serverCertificate', {}),
46 mtls_policy=response.get(
'mtlsPolicy', {}),
47 create_time=response[
'createTime'],
48 update_time=response[
'updateTime'])
51 @dataclasses.dataclass(frozen=
True)
55 client_certificate: dict
56 server_validation_ca: list
62 Any]) ->
'ClientTlsPolicy':
65 client_certificate=response.get(
'clientCertificate', {}),
66 server_validation_ca=response.get(
'serverValidationCa', []),
67 create_time=response[
'createTime'],
68 update_time=response[
'updateTime'])
71 @dataclasses.dataclass(frozen=
True)
82 response: Dict[str, Any]) ->
'AuthorizationPolicy':
85 create_time=response[
'createTime'],
86 update_time=response[
'updateTime'],
87 action=response[
'action'],
88 rules=response.get(
'rules', []))
92 metaclass=abc.ABCMeta):
93 """Base class for NetworkSecurity APIs."""
105 return 'networksecurity'
110 retryer = tenacity.Retrying(
112 wait=tenacity.wait_fixed(10),
113 stop=tenacity.stop_after_delay(5 * 60),
114 before_sleep=tenacity.before_sleep_log(logger, logging.DEBUG),
116 retryer(super()._execute, *args, **kwargs)
121 exception.error.code == code_pb2.INTERNAL)
125 """NetworkSecurity API v1beta1."""
127 SERVER_TLS_POLICIES =
'serverTlsPolicies'
128 CLIENT_TLS_POLICIES =
'clientTlsPolicies'
129 AUTHZ_POLICIES =
'authorizationPolicies'
139 serverTlsPolicyId=name)
145 return ServerTlsPolicy.from_response(name, response)
156 clientTlsPolicyId=name)
162 return ClientTlsPolicy.from_response(name, response)
173 authorizationPolicyId=name)
179 return ClientTlsPolicy.from_response(name, response)
188 """NetworkSecurity API v1alpha1.
190 Note: extending v1beta1 class presumes that v1beta1 is just a v1alpha1 API
191 graduated into a more stable version. This is true in most cases. However,
192 v1alpha1 class can always override and reimplement incompatible methods.