yandexcloud 0.316.0__py3-none-any.whl → 0.317.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of yandexcloud might be problematic. Click here for more details.

Files changed (133) hide show
  1. yandex/cloud/backup/v1/resource_pb2.py +10 -10
  2. yandex/cloud/backup/v1/resource_pb2.pyi +5 -1
  3. yandex/cloud/datatransfer/v1/transfer_pb2.py +12 -10
  4. yandex/cloud/datatransfer/v1/transfer_pb2.pyi +17 -3
  5. yandex/cloud/loadtesting/agent/v1/agent_registration_service_pb2.py +18 -11
  6. yandex/cloud/loadtesting/agent/v1/agent_registration_service_pb2.pyi +23 -1
  7. yandex/cloud/loadtesting/api/v1/agent/agent_pb2.py +6 -5
  8. yandex/cloud/loadtesting/api/v1/agent/agent_pb2.pyi +9 -1
  9. yandex/cloud/loadtesting/api/v1/agent/log_settings_pb2.py +29 -0
  10. yandex/cloud/loadtesting/api/v1/agent/log_settings_pb2.pyi +27 -0
  11. yandex/cloud/loadtesting/api/v1/agent/log_settings_pb2_grpc.py +4 -0
  12. yandex/cloud/loadtesting/api/v1/agent/log_settings_pb2_grpc.pyi +17 -0
  13. yandex/cloud/loadtesting/api/v1/agent_service_pb2.py +27 -26
  14. yandex/cloud/loadtesting/api/v1/agent_service_pb2.pyi +9 -2
  15. yandex/cloud/loadtesting/api/v1/test/imbalance_point_pb2.py +2 -2
  16. yandex/cloud/loadtesting/api/v1/test/imbalance_point_pb2.pyi +5 -1
  17. yandex/cloud/mdb/mysql/v1/backup_service_pb2.py +17 -13
  18. yandex/cloud/mdb/mysql/v1/backup_service_pb2_grpc.py +35 -0
  19. yandex/cloud/mdb/mysql/v1/backup_service_pb2_grpc.pyi +21 -0
  20. yandex/cloud/mdb/opensearch/v1/auth_pb2.py +6 -5
  21. yandex/cloud/mdb/opensearch/v1/auth_pb2.pyi +9 -1
  22. yandex/cloud/mdb/opensearch/v1/cluster_pb2.py +50 -43
  23. yandex/cloud/mdb/opensearch/v1/cluster_pb2.pyi +40 -4
  24. yandex/cloud/mdb/opensearch/v1/cluster_service_pb2.py +61 -61
  25. yandex/cloud/mdb/opensearch/v1/cluster_service_pb2.pyi +32 -8
  26. yandex/cloud/monitoring/v3/chart_widget_pb2.py +46 -44
  27. yandex/cloud/monitoring/v3/chart_widget_pb2.pyi +28 -2
  28. yandex/cloud/serverless/eventrouter/__init__.py +0 -0
  29. yandex/cloud/serverless/eventrouter/v1/__init__.py +0 -0
  30. yandex/cloud/serverless/eventrouter/v1/bus_pb2.py +33 -0
  31. yandex/cloud/serverless/eventrouter/v1/bus_pb2.pyi +107 -0
  32. yandex/cloud/serverless/eventrouter/v1/bus_pb2_grpc.py +4 -0
  33. yandex/cloud/serverless/eventrouter/v1/bus_pb2_grpc.pyi +17 -0
  34. yandex/cloud/serverless/eventrouter/v1/bus_service_pb2.py +115 -0
  35. yandex/cloud/serverless/eventrouter/v1/bus_service_pb2.pyi +320 -0
  36. yandex/cloud/serverless/eventrouter/v1/bus_service_pb2_grpc.py +346 -0
  37. yandex/cloud/serverless/eventrouter/v1/bus_service_pb2_grpc.pyi +219 -0
  38. yandex/cloud/serverless/eventrouter/v1/connector_pb2.py +61 -0
  39. yandex/cloud/serverless/eventrouter/v1/connector_pb2.pyi +223 -0
  40. yandex/cloud/serverless/eventrouter/v1/connector_pb2_grpc.py +4 -0
  41. yandex/cloud/serverless/eventrouter/v1/connector_pb2_grpc.pyi +17 -0
  42. yandex/cloud/serverless/eventrouter/v1/connector_service_pb2.py +135 -0
  43. yandex/cloud/serverless/eventrouter/v1/connector_service_pb2.pyi +397 -0
  44. yandex/cloud/serverless/eventrouter/v1/connector_service_pb2_grpc.py +414 -0
  45. yandex/cloud/serverless/eventrouter/v1/connector_service_pb2_grpc.pyi +259 -0
  46. yandex/cloud/serverless/eventrouter/v1/event_service_pb2.py +37 -0
  47. yandex/cloud/serverless/eventrouter/v1/event_service_pb2.pyi +31 -0
  48. yandex/cloud/serverless/eventrouter/v1/event_service_pb2_grpc.py +71 -0
  49. yandex/cloud/serverless/eventrouter/v1/event_service_pb2_grpc.pyi +51 -0
  50. yandex/cloud/serverless/eventrouter/v1/rule_pb2.py +123 -0
  51. yandex/cloud/serverless/eventrouter/v1/rule_pb2.pyi +532 -0
  52. yandex/cloud/serverless/eventrouter/v1/rule_pb2_grpc.py +4 -0
  53. yandex/cloud/serverless/eventrouter/v1/rule_pb2_grpc.pyi +17 -0
  54. yandex/cloud/serverless/eventrouter/v1/rule_service_pb2.py +139 -0
  55. yandex/cloud/serverless/eventrouter/v1/rule_service_pb2.pyi +413 -0
  56. yandex/cloud/serverless/eventrouter/v1/rule_service_pb2_grpc.py +414 -0
  57. yandex/cloud/serverless/eventrouter/v1/rule_service_pb2_grpc.pyi +259 -0
  58. yandex/cloud/serverless/functions/v1/function_pb2.py +34 -34
  59. yandex/cloud/serverless/functions/v1/function_pb2.pyi +8 -0
  60. yandex/cloud/serverless/workflows/__init__.py +0 -0
  61. yandex/cloud/serverless/workflows/v1/__init__.py +0 -0
  62. yandex/cloud/serverless/workflows/v1/execution_pb2.py +43 -0
  63. yandex/cloud/serverless/workflows/v1/execution_pb2.pyi +203 -0
  64. yandex/cloud/serverless/workflows/v1/execution_pb2_grpc.py +4 -0
  65. yandex/cloud/serverless/workflows/v1/execution_pb2_grpc.pyi +17 -0
  66. yandex/cloud/serverless/workflows/v1/execution_service_pb2.py +74 -0
  67. yandex/cloud/serverless/workflows/v1/execution_service_pb2.pyi +231 -0
  68. yandex/cloud/serverless/workflows/v1/execution_service_pb2_grpc.py +206 -0
  69. yandex/cloud/serverless/workflows/v1/execution_service_pb2_grpc.pyi +130 -0
  70. yandex/cloud/serverless/workflows/v1/history_entry_pb2.py +41 -0
  71. yandex/cloud/serverless/workflows/v1/history_entry_pb2.pyi +174 -0
  72. yandex/cloud/serverless/workflows/v1/history_entry_pb2_grpc.py +4 -0
  73. yandex/cloud/serverless/workflows/v1/history_entry_pb2_grpc.pyi +17 -0
  74. yandex/cloud/serverless/workflows/v1/workflow_pb2.py +47 -0
  75. yandex/cloud/serverless/workflows/v1/workflow_pb2.pyi +260 -0
  76. yandex/cloud/serverless/workflows/v1/workflow_pb2_grpc.py +4 -0
  77. yandex/cloud/serverless/workflows/v1/workflow_pb2_grpc.pyi +17 -0
  78. yandex/cloud/serverless/workflows/v1/workflow_service_pb2.py +112 -0
  79. yandex/cloud/serverless/workflows/v1/workflow_service_pb2.pyi +395 -0
  80. yandex/cloud/serverless/workflows/v1/workflow_service_pb2_grpc.py +241 -0
  81. yandex/cloud/serverless/workflows/v1/workflow_service_pb2_grpc.pyi +151 -0
  82. yandex/cloud/smartwebsecurity/v1/advanced_rate_limiter/__init__.py +0 -0
  83. yandex/cloud/smartwebsecurity/v1/advanced_rate_limiter/advanced_rate_limiter_profile_pb2.py +77 -0
  84. yandex/cloud/smartwebsecurity/v1/advanced_rate_limiter/advanced_rate_limiter_profile_pb2.pyi +352 -0
  85. yandex/cloud/smartwebsecurity/v1/advanced_rate_limiter/advanced_rate_limiter_profile_pb2_grpc.py +4 -0
  86. yandex/cloud/smartwebsecurity/v1/advanced_rate_limiter/advanced_rate_limiter_profile_pb2_grpc.pyi +17 -0
  87. yandex/cloud/smartwebsecurity/v1/advanced_rate_limiter/advanced_rate_limiter_profile_service_pb2.py +78 -0
  88. yandex/cloud/smartwebsecurity/v1/advanced_rate_limiter/advanced_rate_limiter_profile_service_pb2.pyi +244 -0
  89. yandex/cloud/smartwebsecurity/v1/advanced_rate_limiter/advanced_rate_limiter_profile_service_pb2_grpc.py +208 -0
  90. yandex/cloud/smartwebsecurity/v1/advanced_rate_limiter/advanced_rate_limiter_profile_service_pb2_grpc.pyi +132 -0
  91. yandex/cloud/smartwebsecurity/v1/waf/__init__.py +0 -0
  92. yandex/cloud/smartwebsecurity/v1/waf/rule_set_descriptor_pb2.py +35 -0
  93. yandex/cloud/smartwebsecurity/v1/waf/rule_set_descriptor_pb2.pyi +71 -0
  94. yandex/cloud/smartwebsecurity/v1/waf/rule_set_descriptor_pb2_grpc.py +4 -0
  95. yandex/cloud/smartwebsecurity/v1/waf/rule_set_descriptor_pb2_grpc.pyi +17 -0
  96. yandex/cloud/smartwebsecurity/v1/waf/rule_set_descriptor_service_pb2.py +37 -0
  97. yandex/cloud/smartwebsecurity/v1/waf/rule_set_descriptor_service_pb2.pyi +31 -0
  98. yandex/cloud/smartwebsecurity/v1/waf/rule_set_descriptor_service_pb2_grpc.py +71 -0
  99. yandex/cloud/smartwebsecurity/v1/waf/rule_set_descriptor_service_pb2_grpc.pyi +51 -0
  100. yandex/cloud/smartwebsecurity/v1/waf/waf_profile_pb2.py +81 -0
  101. yandex/cloud/smartwebsecurity/v1/waf/waf_profile_pb2.pyi +296 -0
  102. yandex/cloud/smartwebsecurity/v1/waf/waf_profile_pb2_grpc.py +4 -0
  103. yandex/cloud/smartwebsecurity/v1/waf/waf_profile_pb2_grpc.pyi +17 -0
  104. yandex/cloud/smartwebsecurity/v1/waf/waf_profile_service_pb2.py +76 -0
  105. yandex/cloud/smartwebsecurity/v1/waf/waf_profile_service_pb2.pyi +283 -0
  106. yandex/cloud/smartwebsecurity/v1/waf/waf_profile_service_pb2_grpc.py +208 -0
  107. yandex/cloud/smartwebsecurity/v1/waf/waf_profile_service_pb2_grpc.pyi +132 -0
  108. yandex/cloud/speechsense/v1/analysis/summarization_pb2.py +32 -0
  109. yandex/cloud/speechsense/v1/analysis/summarization_pb2.pyi +95 -0
  110. yandex/cloud/speechsense/v1/analysis/summarization_pb2_grpc.py +4 -0
  111. yandex/cloud/speechsense/v1/analysis/summarization_pb2_grpc.pyi +17 -0
  112. yandex/cloud/speechsense/v1/project_pb2.py +29 -0
  113. yandex/cloud/speechsense/v1/project_pb2.pyi +79 -0
  114. yandex/cloud/speechsense/v1/project_pb2_grpc.py +4 -0
  115. yandex/cloud/speechsense/v1/project_pb2_grpc.pyi +17 -0
  116. yandex/cloud/speechsense/v1/project_service_pb2.py +35 -0
  117. yandex/cloud/speechsense/v1/project_service_pb2.pyi +59 -0
  118. yandex/cloud/speechsense/v1/project_service_pb2_grpc.py +68 -0
  119. yandex/cloud/speechsense/v1/project_service_pb2_grpc.pyi +45 -0
  120. yandex/cloud/speechsense/v1/talk_pb2.py +8 -7
  121. yandex/cloud/speechsense/v1/talk_pb2.pyi +7 -2
  122. yandex/cloud/video/v1/channel_service_pb2.py +33 -28
  123. yandex/cloud/video/v1/episode_service_pb2.py +56 -47
  124. yandex/cloud/video/v1/stream_line_service_pb2.py +67 -60
  125. yandex/cloud/video/v1/stream_service_pb2.py +46 -41
  126. yandex/cloud/video/v1/thumbnail_service_pb2.py +29 -22
  127. yandex/cloud/video/v1/video_service_pb2.py +62 -53
  128. {yandexcloud-0.316.0.dist-info → yandexcloud-0.317.0.dist-info}/METADATA +1 -1
  129. {yandexcloud-0.316.0.dist-info → yandexcloud-0.317.0.dist-info}/RECORD +133 -39
  130. {yandexcloud-0.316.0.dist-info → yandexcloud-0.317.0.dist-info}/WHEEL +1 -1
  131. {yandexcloud-0.316.0.dist-info → yandexcloud-0.317.0.dist-info}/AUTHORS +0 -0
  132. {yandexcloud-0.316.0.dist-info → yandexcloud-0.317.0.dist-info}/LICENSE +0 -0
  133. {yandexcloud-0.316.0.dist-info → yandexcloud-0.317.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,151 @@
1
+ """
2
+ @generated by mypy-protobuf. Do not edit manually!
3
+ isort:skip_file
4
+ """
5
+
6
+ import abc
7
+ import collections.abc
8
+ import grpc
9
+ import grpc.aio
10
+ import typing
11
+ import yandex.cloud.operation.operation_pb2
12
+ import yandex.cloud.serverless.workflows.v1.workflow_service_pb2
13
+
14
+ _T = typing.TypeVar("_T")
15
+
16
+ class _MaybeAsyncIterator(collections.abc.AsyncIterator[_T], collections.abc.Iterator[_T], metaclass=abc.ABCMeta): ...
17
+
18
+ class _ServicerContext(grpc.ServicerContext, grpc.aio.ServicerContext): # type: ignore[misc, type-arg]
19
+ ...
20
+
21
+ class WorkflowServiceStub:
22
+ """Set of methods for managing Workflows."""
23
+
24
+ def __init__(self, channel: typing.Union[grpc.Channel, grpc.aio.Channel]) -> None: ...
25
+ Create: grpc.UnaryUnaryMultiCallable[
26
+ yandex.cloud.serverless.workflows.v1.workflow_service_pb2.CreateWorkflowRequest,
27
+ yandex.cloud.operation.operation_pb2.Operation,
28
+ ]
29
+ """Creates Workflow in specified folder."""
30
+
31
+ Update: grpc.UnaryUnaryMultiCallable[
32
+ yandex.cloud.serverless.workflows.v1.workflow_service_pb2.UpdateWorkflowRequest,
33
+ yandex.cloud.operation.operation_pb2.Operation,
34
+ ]
35
+ """Updates specified Workflow."""
36
+
37
+ Get: grpc.UnaryUnaryMultiCallable[
38
+ yandex.cloud.serverless.workflows.v1.workflow_service_pb2.GetWorkflowRequest,
39
+ yandex.cloud.serverless.workflows.v1.workflow_service_pb2.GetWorkflowResponse,
40
+ ]
41
+ """Retrieves specified Workflow."""
42
+
43
+ Delete: grpc.UnaryUnaryMultiCallable[
44
+ yandex.cloud.serverless.workflows.v1.workflow_service_pb2.DeleteWorkflowRequest,
45
+ yandex.cloud.operation.operation_pb2.Operation,
46
+ ]
47
+ """Deletes specified Workflow."""
48
+
49
+ List: grpc.UnaryUnaryMultiCallable[
50
+ yandex.cloud.serverless.workflows.v1.workflow_service_pb2.ListWorkflowsRequest,
51
+ yandex.cloud.serverless.workflows.v1.workflow_service_pb2.ListWorkflowsResponse,
52
+ ]
53
+ """Retrieves list of Workflows in specified folder."""
54
+
55
+ ListOperations: grpc.UnaryUnaryMultiCallable[
56
+ yandex.cloud.serverless.workflows.v1.workflow_service_pb2.ListOperationsRequest,
57
+ yandex.cloud.serverless.workflows.v1.workflow_service_pb2.ListOperationsResponse,
58
+ ]
59
+ """Lists operations for specified Workflow."""
60
+
61
+ class WorkflowServiceAsyncStub:
62
+ """Set of methods for managing Workflows."""
63
+
64
+ Create: grpc.aio.UnaryUnaryMultiCallable[
65
+ yandex.cloud.serverless.workflows.v1.workflow_service_pb2.CreateWorkflowRequest,
66
+ yandex.cloud.operation.operation_pb2.Operation,
67
+ ]
68
+ """Creates Workflow in specified folder."""
69
+
70
+ Update: grpc.aio.UnaryUnaryMultiCallable[
71
+ yandex.cloud.serverless.workflows.v1.workflow_service_pb2.UpdateWorkflowRequest,
72
+ yandex.cloud.operation.operation_pb2.Operation,
73
+ ]
74
+ """Updates specified Workflow."""
75
+
76
+ Get: grpc.aio.UnaryUnaryMultiCallable[
77
+ yandex.cloud.serverless.workflows.v1.workflow_service_pb2.GetWorkflowRequest,
78
+ yandex.cloud.serverless.workflows.v1.workflow_service_pb2.GetWorkflowResponse,
79
+ ]
80
+ """Retrieves specified Workflow."""
81
+
82
+ Delete: grpc.aio.UnaryUnaryMultiCallable[
83
+ yandex.cloud.serverless.workflows.v1.workflow_service_pb2.DeleteWorkflowRequest,
84
+ yandex.cloud.operation.operation_pb2.Operation,
85
+ ]
86
+ """Deletes specified Workflow."""
87
+
88
+ List: grpc.aio.UnaryUnaryMultiCallable[
89
+ yandex.cloud.serverless.workflows.v1.workflow_service_pb2.ListWorkflowsRequest,
90
+ yandex.cloud.serverless.workflows.v1.workflow_service_pb2.ListWorkflowsResponse,
91
+ ]
92
+ """Retrieves list of Workflows in specified folder."""
93
+
94
+ ListOperations: grpc.aio.UnaryUnaryMultiCallable[
95
+ yandex.cloud.serverless.workflows.v1.workflow_service_pb2.ListOperationsRequest,
96
+ yandex.cloud.serverless.workflows.v1.workflow_service_pb2.ListOperationsResponse,
97
+ ]
98
+ """Lists operations for specified Workflow."""
99
+
100
+ class WorkflowServiceServicer(metaclass=abc.ABCMeta):
101
+ """Set of methods for managing Workflows."""
102
+
103
+ @abc.abstractmethod
104
+ def Create(
105
+ self,
106
+ request: yandex.cloud.serverless.workflows.v1.workflow_service_pb2.CreateWorkflowRequest,
107
+ context: _ServicerContext,
108
+ ) -> typing.Union[yandex.cloud.operation.operation_pb2.Operation, collections.abc.Awaitable[yandex.cloud.operation.operation_pb2.Operation]]:
109
+ """Creates Workflow in specified folder."""
110
+
111
+ @abc.abstractmethod
112
+ def Update(
113
+ self,
114
+ request: yandex.cloud.serverless.workflows.v1.workflow_service_pb2.UpdateWorkflowRequest,
115
+ context: _ServicerContext,
116
+ ) -> typing.Union[yandex.cloud.operation.operation_pb2.Operation, collections.abc.Awaitable[yandex.cloud.operation.operation_pb2.Operation]]:
117
+ """Updates specified Workflow."""
118
+
119
+ @abc.abstractmethod
120
+ def Get(
121
+ self,
122
+ request: yandex.cloud.serverless.workflows.v1.workflow_service_pb2.GetWorkflowRequest,
123
+ context: _ServicerContext,
124
+ ) -> typing.Union[yandex.cloud.serverless.workflows.v1.workflow_service_pb2.GetWorkflowResponse, collections.abc.Awaitable[yandex.cloud.serverless.workflows.v1.workflow_service_pb2.GetWorkflowResponse]]:
125
+ """Retrieves specified Workflow."""
126
+
127
+ @abc.abstractmethod
128
+ def Delete(
129
+ self,
130
+ request: yandex.cloud.serverless.workflows.v1.workflow_service_pb2.DeleteWorkflowRequest,
131
+ context: _ServicerContext,
132
+ ) -> typing.Union[yandex.cloud.operation.operation_pb2.Operation, collections.abc.Awaitable[yandex.cloud.operation.operation_pb2.Operation]]:
133
+ """Deletes specified Workflow."""
134
+
135
+ @abc.abstractmethod
136
+ def List(
137
+ self,
138
+ request: yandex.cloud.serverless.workflows.v1.workflow_service_pb2.ListWorkflowsRequest,
139
+ context: _ServicerContext,
140
+ ) -> typing.Union[yandex.cloud.serverless.workflows.v1.workflow_service_pb2.ListWorkflowsResponse, collections.abc.Awaitable[yandex.cloud.serverless.workflows.v1.workflow_service_pb2.ListWorkflowsResponse]]:
141
+ """Retrieves list of Workflows in specified folder."""
142
+
143
+ @abc.abstractmethod
144
+ def ListOperations(
145
+ self,
146
+ request: yandex.cloud.serverless.workflows.v1.workflow_service_pb2.ListOperationsRequest,
147
+ context: _ServicerContext,
148
+ ) -> typing.Union[yandex.cloud.serverless.workflows.v1.workflow_service_pb2.ListOperationsResponse, collections.abc.Awaitable[yandex.cloud.serverless.workflows.v1.workflow_service_pb2.ListOperationsResponse]]:
149
+ """Lists operations for specified Workflow."""
150
+
151
+ def add_WorkflowServiceServicer_to_server(servicer: WorkflowServiceServicer, server: typing.Union[grpc.Server, grpc.aio.Server]) -> None: ...
@@ -0,0 +1,77 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # source: yandex/cloud/smartwebsecurity/v1/advanced_rate_limiter/advanced_rate_limiter_profile.proto
4
+ """Generated protocol buffer code."""
5
+ from google.protobuf import descriptor as _descriptor
6
+ from google.protobuf import descriptor_pool as _descriptor_pool
7
+ from google.protobuf import symbol_database as _symbol_database
8
+ from google.protobuf.internal import builder as _builder
9
+ # @@protoc_insertion_point(imports)
10
+
11
+ _sym_db = _symbol_database.Default()
12
+
13
+
14
+ from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
15
+ from yandex.cloud.smartwebsecurity.v1 import security_profile_pb2 as yandex_dot_cloud_dot_smartwebsecurity_dot_v1_dot_security__profile__pb2
16
+ from yandex.cloud import validation_pb2 as yandex_dot_cloud_dot_validation__pb2
17
+
18
+
19
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\nZyandex/cloud/smartwebsecurity/v1/advanced_rate_limiter/advanced_rate_limiter_profile.proto\x12\x36yandex.cloud.smartwebsecurity.v1.advanced_rate_limiter\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x37yandex/cloud/smartwebsecurity/v1/security_profile.proto\x1a\x1dyandex/cloud/validation.proto\"\xb0\x04\n\x1a\x41\x64vancedRateLimiterProfile\x12\n\n\x02id\x18\x01 \x01(\t\x12\x11\n\tfolder_id\x18\x02 \x01(\t\x12\xab\x01\n\x06labels\x18\x03 \x03(\x0b\x32^.yandex.cloud.smartwebsecurity.v1.advanced_rate_limiter.AdvancedRateLimiterProfile.LabelsEntryB;\xf2\xc7\x31\x0b[-_0-9a-z]*\x82\xc8\x31\x04<=64\x8a\xc8\x31\x04<=63\xb2\xc8\x31\x18\x12\x10[a-z][-_0-9a-z]*\x1a\x04\x31-63\x12\x38\n\x04name\x18\x04 \x01(\tB*\xe8\xc7\x31\x01\xf2\xc7\x31\x1a[a-zA-Z0-9][a-zA-Z0-9-_.]*\x8a\xc8\x31\x04\x31-50\x12\x1e\n\x0b\x64\x65scription\x18\x05 \x01(\tB\t\x8a\xc8\x31\x05<=512\x12t\n\x1b\x61\x64vanced_rate_limiter_rules\x18\x06 \x03(\x0b\x32O.yandex.cloud.smartwebsecurity.v1.advanced_rate_limiter.AdvancedRateLimiterRule\x12.\n\ncreated_at\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x10\n\x08\x63loud_id\x18\t \x01(\t\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01J\x04\x08\x08\x10\t\"\xe3\x10\n\x17\x41\x64vancedRateLimiterRule\x12\x38\n\x04name\x18\x01 \x01(\tB*\xe8\xc7\x31\x01\xf2\xc7\x31\x1a[a-zA-Z0-9][a-zA-Z0-9-_.]*\x8a\xc8\x31\x04\x31-50\x12\x1e\n\x08priority\x18\x02 \x01(\x03\x42\x0c\xfa\xc7\x31\x08\x31-999999\x12\x1e\n\x0b\x64\x65scription\x18\x03 \x01(\tB\t\x8a\xc8\x31\x05<=512\x12\x0f\n\x07\x64ry_run\x18\x04 \x01(\x08\x12s\n\x0cstatic_quota\x18\x05 \x01(\x0b\x32[.yandex.cloud.smartwebsecurity.v1.advanced_rate_limiter.AdvancedRateLimiterRule.StaticQuotaH\x00\x12u\n\rdynamic_quota\x18\x06 \x01(\x0b\x32\\.yandex.cloud.smartwebsecurity.v1.advanced_rate_limiter.AdvancedRateLimiterRule.DynamicQuotaH\x00\x1a\xa7\x02\n\x0bStaticQuota\x12\x66\n\x06\x61\x63tion\x18\x01 \x01(\x0e\x32V.yandex.cloud.smartwebsecurity.v1.advanced_rate_limiter.AdvancedRateLimiterRule.Action\x12>\n\tcondition\x18\x02 \x01(\x0b\x32+.yandex.cloud.smartwebsecurity.v1.Condition\x12\"\n\x05limit\x18\x03 \x01(\x03\x42\x13\xfa\xc7\x31\x0f\x31-9999999999999\x12L\n\x06period\x18\x04 \x01(\x03\x42<\xfa\xc7\x31\x38\x31,5,10,30,60,120,180,240,300,600,900,1200,1800,2700,3600\x1a\xe2\n\n\x0c\x44ynamicQuota\x12\x66\n\x06\x61\x63tion\x18\x01 \x01(\x0e\x32V.yandex.cloud.smartwebsecurity.v1.advanced_rate_limiter.AdvancedRateLimiterRule.Action\x12>\n\tcondition\x18\x02 \x01(\x0b\x32+.yandex.cloud.smartwebsecurity.v1.Condition\x12\"\n\x05limit\x18\x03 \x01(\x03\x42\x13\xfa\xc7\x31\x0f\x31-9999999999999\x12L\n\x06period\x18\x04 \x01(\x03\x42<\xfa\xc7\x31\x38\x31,5,10,30,60,120,180,240,300,600,900,1200,1800,2700,3600\x12\x8d\x01\n\x0f\x63haracteristics\x18\x05 \x03(\x0b\x32k.yandex.cloud.smartwebsecurity.v1.advanced_rate_limiter.AdvancedRateLimiterRule.DynamicQuota.CharacteristicB\x07\x82\xc8\x31\x03<=3\x1a\xa7\x07\n\x0e\x43haracteristic\x12\xa2\x01\n\x15simple_characteristic\x18\x01 \x01(\x0b\x32\x80\x01.yandex.cloud.smartwebsecurity.v1.advanced_rate_limiter.AdvancedRateLimiterRule.DynamicQuota.Characteristic.SimpleCharacteristicH\x00\x12\x9b\x01\n\x12key_characteristic\x18\x02 \x01(\x0b\x32}.yandex.cloud.smartwebsecurity.v1.advanced_rate_limiter.AdvancedRateLimiterRule.DynamicQuota.Characteristic.KeyCharacteristicH\x00\x12\x18\n\x10\x63\x61se_insensitive\x18\n \x01(\x08\x1a\x89\x02\n\x14SimpleCharacteristic\x12\x94\x01\n\x04type\x18\x01 \x01(\x0e\x32\x85\x01.yandex.cloud.smartwebsecurity.v1.advanced_rate_limiter.AdvancedRateLimiterRule.DynamicQuota.Characteristic.SimpleCharacteristic.Type\"Z\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\x10\n\x0cREQUEST_PATH\x10\x01\x12\x0f\n\x0bHTTP_METHOD\x10\x02\x12\x06\n\x02IP\x10\x03\x12\x07\n\x03GEO\x10\x04\x12\x08\n\x04HOST\x10\x05\x1a\x83\x02\n\x11KeyCharacteristic\x12\x91\x01\n\x04type\x18\x01 \x01(\x0e\x32\x82\x01.yandex.cloud.smartwebsecurity.v1.advanced_rate_limiter.AdvancedRateLimiterRule.DynamicQuota.Characteristic.KeyCharacteristic.Type\x12\r\n\x05value\x18\x02 \x01(\t\"K\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\x0e\n\nCOOKIE_KEY\x10\x01\x12\x0e\n\nHEADER_KEY\x10\x02\x12\r\n\tQUERY_KEY\x10\x03\x42 \n\x18\x63haracteristic_specifier\x12\x04\xc0\xc1\x31\x01J\x04\x08\x03\x10\n\"*\n\x06\x41\x63tion\x12\x16\n\x12\x41\x43TION_UNSPECIFIED\x10\x00\x12\x08\n\x04\x44\x45NY\x10\x01\x42\x16\n\x0erule_specifier\x12\x04\xc0\xc1\x31\x01\x42\xa9\x01\n:yandex.cloud.api.smartwebsecurity.v1.advanced_rate_limiterZkgithub.com/yandex-cloud/go-genproto/yandex/cloud/smartwebsecurity/v1/advanced_rate_limiter;smartwebsecurityb\x06proto3')
20
+
21
+ _globals = globals()
22
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
23
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'yandex.cloud.smartwebsecurity.v1.advanced_rate_limiter.advanced_rate_limiter_profile_pb2', _globals)
24
+ if _descriptor._USE_C_DESCRIPTORS == False:
25
+ DESCRIPTOR._options = None
26
+ DESCRIPTOR._serialized_options = b'\n:yandex.cloud.api.smartwebsecurity.v1.advanced_rate_limiterZkgithub.com/yandex-cloud/go-genproto/yandex/cloud/smartwebsecurity/v1/advanced_rate_limiter;smartwebsecurity'
27
+ _ADVANCEDRATELIMITERPROFILE_LABELSENTRY._options = None
28
+ _ADVANCEDRATELIMITERPROFILE_LABELSENTRY._serialized_options = b'8\001'
29
+ _ADVANCEDRATELIMITERPROFILE.fields_by_name['labels']._options = None
30
+ _ADVANCEDRATELIMITERPROFILE.fields_by_name['labels']._serialized_options = b'\362\3071\013[-_0-9a-z]*\202\3101\004<=64\212\3101\004<=63\262\3101\030\022\020[a-z][-_0-9a-z]*\032\0041-63'
31
+ _ADVANCEDRATELIMITERPROFILE.fields_by_name['name']._options = None
32
+ _ADVANCEDRATELIMITERPROFILE.fields_by_name['name']._serialized_options = b'\350\3071\001\362\3071\032[a-zA-Z0-9][a-zA-Z0-9-_.]*\212\3101\0041-50'
33
+ _ADVANCEDRATELIMITERPROFILE.fields_by_name['description']._options = None
34
+ _ADVANCEDRATELIMITERPROFILE.fields_by_name['description']._serialized_options = b'\212\3101\005<=512'
35
+ _ADVANCEDRATELIMITERRULE_STATICQUOTA.fields_by_name['limit']._options = None
36
+ _ADVANCEDRATELIMITERRULE_STATICQUOTA.fields_by_name['limit']._serialized_options = b'\372\3071\0171-9999999999999'
37
+ _ADVANCEDRATELIMITERRULE_STATICQUOTA.fields_by_name['period']._options = None
38
+ _ADVANCEDRATELIMITERRULE_STATICQUOTA.fields_by_name['period']._serialized_options = b'\372\307181,5,10,30,60,120,180,240,300,600,900,1200,1800,2700,3600'
39
+ _ADVANCEDRATELIMITERRULE_DYNAMICQUOTA_CHARACTERISTIC.oneofs_by_name['characteristic_specifier']._options = None
40
+ _ADVANCEDRATELIMITERRULE_DYNAMICQUOTA_CHARACTERISTIC.oneofs_by_name['characteristic_specifier']._serialized_options = b'\300\3011\001'
41
+ _ADVANCEDRATELIMITERRULE_DYNAMICQUOTA.fields_by_name['limit']._options = None
42
+ _ADVANCEDRATELIMITERRULE_DYNAMICQUOTA.fields_by_name['limit']._serialized_options = b'\372\3071\0171-9999999999999'
43
+ _ADVANCEDRATELIMITERRULE_DYNAMICQUOTA.fields_by_name['period']._options = None
44
+ _ADVANCEDRATELIMITERRULE_DYNAMICQUOTA.fields_by_name['period']._serialized_options = b'\372\307181,5,10,30,60,120,180,240,300,600,900,1200,1800,2700,3600'
45
+ _ADVANCEDRATELIMITERRULE_DYNAMICQUOTA.fields_by_name['characteristics']._options = None
46
+ _ADVANCEDRATELIMITERRULE_DYNAMICQUOTA.fields_by_name['characteristics']._serialized_options = b'\202\3101\003<=3'
47
+ _ADVANCEDRATELIMITERRULE.oneofs_by_name['rule_specifier']._options = None
48
+ _ADVANCEDRATELIMITERRULE.oneofs_by_name['rule_specifier']._serialized_options = b'\300\3011\001'
49
+ _ADVANCEDRATELIMITERRULE.fields_by_name['name']._options = None
50
+ _ADVANCEDRATELIMITERRULE.fields_by_name['name']._serialized_options = b'\350\3071\001\362\3071\032[a-zA-Z0-9][a-zA-Z0-9-_.]*\212\3101\0041-50'
51
+ _ADVANCEDRATELIMITERRULE.fields_by_name['priority']._options = None
52
+ _ADVANCEDRATELIMITERRULE.fields_by_name['priority']._serialized_options = b'\372\3071\0101-999999'
53
+ _ADVANCEDRATELIMITERRULE.fields_by_name['description']._options = None
54
+ _ADVANCEDRATELIMITERRULE.fields_by_name['description']._serialized_options = b'\212\3101\005<=512'
55
+ _globals['_ADVANCEDRATELIMITERPROFILE']._serialized_start=272
56
+ _globals['_ADVANCEDRATELIMITERPROFILE']._serialized_end=832
57
+ _globals['_ADVANCEDRATELIMITERPROFILE_LABELSENTRY']._serialized_start=781
58
+ _globals['_ADVANCEDRATELIMITERPROFILE_LABELSENTRY']._serialized_end=826
59
+ _globals['_ADVANCEDRATELIMITERRULE']._serialized_start=835
60
+ _globals['_ADVANCEDRATELIMITERRULE']._serialized_end=2982
61
+ _globals['_ADVANCEDRATELIMITERRULE_STATICQUOTA']._serialized_start=1238
62
+ _globals['_ADVANCEDRATELIMITERRULE_STATICQUOTA']._serialized_end=1533
63
+ _globals['_ADVANCEDRATELIMITERRULE_DYNAMICQUOTA']._serialized_start=1536
64
+ _globals['_ADVANCEDRATELIMITERRULE_DYNAMICQUOTA']._serialized_end=2914
65
+ _globals['_ADVANCEDRATELIMITERRULE_DYNAMICQUOTA_CHARACTERISTIC']._serialized_start=1979
66
+ _globals['_ADVANCEDRATELIMITERRULE_DYNAMICQUOTA_CHARACTERISTIC']._serialized_end=2914
67
+ _globals['_ADVANCEDRATELIMITERRULE_DYNAMICQUOTA_CHARACTERISTIC_SIMPLECHARACTERISTIC']._serialized_start=2347
68
+ _globals['_ADVANCEDRATELIMITERRULE_DYNAMICQUOTA_CHARACTERISTIC_SIMPLECHARACTERISTIC']._serialized_end=2612
69
+ _globals['_ADVANCEDRATELIMITERRULE_DYNAMICQUOTA_CHARACTERISTIC_SIMPLECHARACTERISTIC_TYPE']._serialized_start=2522
70
+ _globals['_ADVANCEDRATELIMITERRULE_DYNAMICQUOTA_CHARACTERISTIC_SIMPLECHARACTERISTIC_TYPE']._serialized_end=2612
71
+ _globals['_ADVANCEDRATELIMITERRULE_DYNAMICQUOTA_CHARACTERISTIC_KEYCHARACTERISTIC']._serialized_start=2615
72
+ _globals['_ADVANCEDRATELIMITERRULE_DYNAMICQUOTA_CHARACTERISTIC_KEYCHARACTERISTIC']._serialized_end=2874
73
+ _globals['_ADVANCEDRATELIMITERRULE_DYNAMICQUOTA_CHARACTERISTIC_KEYCHARACTERISTIC_TYPE']._serialized_start=2799
74
+ _globals['_ADVANCEDRATELIMITERRULE_DYNAMICQUOTA_CHARACTERISTIC_KEYCHARACTERISTIC_TYPE']._serialized_end=2874
75
+ _globals['_ADVANCEDRATELIMITERRULE_ACTION']._serialized_start=2916
76
+ _globals['_ADVANCEDRATELIMITERRULE_ACTION']._serialized_end=2958
77
+ # @@protoc_insertion_point(module_scope)
@@ -0,0 +1,352 @@
1
+ """
2
+ @generated by mypy-protobuf. Do not edit manually!
3
+ isort:skip_file
4
+ """
5
+
6
+ import builtins
7
+ import collections.abc
8
+ import google.protobuf.descriptor
9
+ import google.protobuf.internal.containers
10
+ import google.protobuf.internal.enum_type_wrapper
11
+ import google.protobuf.message
12
+ import google.protobuf.timestamp_pb2
13
+ import sys
14
+ import typing
15
+ import yandex.cloud.smartwebsecurity.v1.security_profile_pb2
16
+
17
+ if sys.version_info >= (3, 10):
18
+ import typing as typing_extensions
19
+ else:
20
+ import typing_extensions
21
+
22
+ DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
23
+
24
+ @typing.final
25
+ class AdvancedRateLimiterProfile(google.protobuf.message.Message):
26
+ """A AdvancedRateLimiterProfile (ARL) resource."""
27
+
28
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
29
+
30
+ @typing.final
31
+ class LabelsEntry(google.protobuf.message.Message):
32
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
33
+
34
+ KEY_FIELD_NUMBER: builtins.int
35
+ VALUE_FIELD_NUMBER: builtins.int
36
+ key: builtins.str
37
+ value: builtins.str
38
+ def __init__(
39
+ self,
40
+ *,
41
+ key: builtins.str = ...,
42
+ value: builtins.str = ...,
43
+ ) -> None: ...
44
+ def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ...
45
+
46
+ ID_FIELD_NUMBER: builtins.int
47
+ FOLDER_ID_FIELD_NUMBER: builtins.int
48
+ LABELS_FIELD_NUMBER: builtins.int
49
+ NAME_FIELD_NUMBER: builtins.int
50
+ DESCRIPTION_FIELD_NUMBER: builtins.int
51
+ ADVANCED_RATE_LIMITER_RULES_FIELD_NUMBER: builtins.int
52
+ CREATED_AT_FIELD_NUMBER: builtins.int
53
+ CLOUD_ID_FIELD_NUMBER: builtins.int
54
+ id: builtins.str
55
+ """ID of the ARL profile."""
56
+ folder_id: builtins.str
57
+ """ID of the folder that the ARL profile belongs to."""
58
+ name: builtins.str
59
+ """Name of the ARL profile. The name is unique within the folder. 1-50 characters long."""
60
+ description: builtins.str
61
+ """Optional description of the ARL profile."""
62
+ cloud_id: builtins.str
63
+ """ID of the cloud that the ARL profile belongs to."""
64
+ @property
65
+ def labels(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]:
66
+ """Labels as `` key:value `` pairs. Maximum of 64 per resource."""
67
+
68
+ @property
69
+ def advanced_rate_limiter_rules(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___AdvancedRateLimiterRule]:
70
+ """List of rules."""
71
+
72
+ @property
73
+ def created_at(self) -> google.protobuf.timestamp_pb2.Timestamp:
74
+ """Creation timestamp in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format."""
75
+
76
+ def __init__(
77
+ self,
78
+ *,
79
+ id: builtins.str = ...,
80
+ folder_id: builtins.str = ...,
81
+ labels: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
82
+ name: builtins.str = ...,
83
+ description: builtins.str = ...,
84
+ advanced_rate_limiter_rules: collections.abc.Iterable[global___AdvancedRateLimiterRule] | None = ...,
85
+ created_at: google.protobuf.timestamp_pb2.Timestamp | None = ...,
86
+ cloud_id: builtins.str = ...,
87
+ ) -> None: ...
88
+ def HasField(self, field_name: typing.Literal["created_at", b"created_at"]) -> builtins.bool: ...
89
+ def ClearField(self, field_name: typing.Literal["advanced_rate_limiter_rules", b"advanced_rate_limiter_rules", "cloud_id", b"cloud_id", "created_at", b"created_at", "description", b"description", "folder_id", b"folder_id", "id", b"id", "labels", b"labels", "name", b"name"]) -> None: ...
90
+
91
+ global___AdvancedRateLimiterProfile = AdvancedRateLimiterProfile
92
+
93
+ @typing.final
94
+ class AdvancedRateLimiterRule(google.protobuf.message.Message):
95
+ """A AdvancedRateLimiterRule object, see [Rules](/docs/smartwebsecurity/concepts/arl#traffic-conditions)."""
96
+
97
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
98
+
99
+ class _Action:
100
+ ValueType = typing.NewType("ValueType", builtins.int)
101
+ V: typing_extensions.TypeAlias = ValueType
102
+
103
+ class _ActionEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[AdvancedRateLimiterRule._Action.ValueType], builtins.type):
104
+ DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
105
+ ACTION_UNSPECIFIED: AdvancedRateLimiterRule._Action.ValueType # 0
106
+ DENY: AdvancedRateLimiterRule._Action.ValueType # 1
107
+ """Deny request."""
108
+
109
+ class Action(_Action, metaclass=_ActionEnumTypeWrapper):
110
+ """Type of action to perform if this rule matched."""
111
+
112
+ ACTION_UNSPECIFIED: AdvancedRateLimiterRule.Action.ValueType # 0
113
+ DENY: AdvancedRateLimiterRule.Action.ValueType # 1
114
+ """Deny request."""
115
+
116
+ @typing.final
117
+ class StaticQuota(google.protobuf.message.Message):
118
+ """StaticQuota object."""
119
+
120
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
121
+
122
+ ACTION_FIELD_NUMBER: builtins.int
123
+ CONDITION_FIELD_NUMBER: builtins.int
124
+ LIMIT_FIELD_NUMBER: builtins.int
125
+ PERIOD_FIELD_NUMBER: builtins.int
126
+ action: global___AdvancedRateLimiterRule.Action.ValueType
127
+ """Action in case of exceeding this quota."""
128
+ limit: builtins.int
129
+ """Desired maximum number of requests per period.
130
+ Enter an integer within the range of 1 and 9999999999999.
131
+ """
132
+ period: builtins.int
133
+ """Period of time in seconds."""
134
+ @property
135
+ def condition(self) -> yandex.cloud.smartwebsecurity.v1.security_profile_pb2.Condition:
136
+ """The condition for matching the quota."""
137
+
138
+ def __init__(
139
+ self,
140
+ *,
141
+ action: global___AdvancedRateLimiterRule.Action.ValueType = ...,
142
+ condition: yandex.cloud.smartwebsecurity.v1.security_profile_pb2.Condition | None = ...,
143
+ limit: builtins.int = ...,
144
+ period: builtins.int = ...,
145
+ ) -> None: ...
146
+ def HasField(self, field_name: typing.Literal["condition", b"condition"]) -> builtins.bool: ...
147
+ def ClearField(self, field_name: typing.Literal["action", b"action", "condition", b"condition", "limit", b"limit", "period", b"period"]) -> None: ...
148
+
149
+ @typing.final
150
+ class DynamicQuota(google.protobuf.message.Message):
151
+ """DynamicQuota object."""
152
+
153
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
154
+
155
+ @typing.final
156
+ class Characteristic(google.protobuf.message.Message):
157
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
158
+
159
+ @typing.final
160
+ class SimpleCharacteristic(google.protobuf.message.Message):
161
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
162
+
163
+ class _Type:
164
+ ValueType = typing.NewType("ValueType", builtins.int)
165
+ V: typing_extensions.TypeAlias = ValueType
166
+
167
+ class _TypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[AdvancedRateLimiterRule.DynamicQuota.Characteristic.SimpleCharacteristic._Type.ValueType], builtins.type):
168
+ DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
169
+ TYPE_UNSPECIFIED: AdvancedRateLimiterRule.DynamicQuota.Characteristic.SimpleCharacteristic._Type.ValueType # 0
170
+ REQUEST_PATH: AdvancedRateLimiterRule.DynamicQuota.Characteristic.SimpleCharacteristic._Type.ValueType # 1
171
+ """HTTP Request path."""
172
+ HTTP_METHOD: AdvancedRateLimiterRule.DynamicQuota.Characteristic.SimpleCharacteristic._Type.ValueType # 2
173
+ """HTTP Method."""
174
+ IP: AdvancedRateLimiterRule.DynamicQuota.Characteristic.SimpleCharacteristic._Type.ValueType # 3
175
+ """IP address."""
176
+ GEO: AdvancedRateLimiterRule.DynamicQuota.Characteristic.SimpleCharacteristic._Type.ValueType # 4
177
+ """Region."""
178
+ HOST: AdvancedRateLimiterRule.DynamicQuota.Characteristic.SimpleCharacteristic._Type.ValueType # 5
179
+ """Host."""
180
+
181
+ class Type(_Type, metaclass=_TypeEnumTypeWrapper):
182
+ """Type of simple characteristic."""
183
+
184
+ TYPE_UNSPECIFIED: AdvancedRateLimiterRule.DynamicQuota.Characteristic.SimpleCharacteristic.Type.ValueType # 0
185
+ REQUEST_PATH: AdvancedRateLimiterRule.DynamicQuota.Characteristic.SimpleCharacteristic.Type.ValueType # 1
186
+ """HTTP Request path."""
187
+ HTTP_METHOD: AdvancedRateLimiterRule.DynamicQuota.Characteristic.SimpleCharacteristic.Type.ValueType # 2
188
+ """HTTP Method."""
189
+ IP: AdvancedRateLimiterRule.DynamicQuota.Characteristic.SimpleCharacteristic.Type.ValueType # 3
190
+ """IP address."""
191
+ GEO: AdvancedRateLimiterRule.DynamicQuota.Characteristic.SimpleCharacteristic.Type.ValueType # 4
192
+ """Region."""
193
+ HOST: AdvancedRateLimiterRule.DynamicQuota.Characteristic.SimpleCharacteristic.Type.ValueType # 5
194
+ """Host."""
195
+
196
+ TYPE_FIELD_NUMBER: builtins.int
197
+ type: global___AdvancedRateLimiterRule.DynamicQuota.Characteristic.SimpleCharacteristic.Type.ValueType
198
+ """Type of simple characteristic."""
199
+ def __init__(
200
+ self,
201
+ *,
202
+ type: global___AdvancedRateLimiterRule.DynamicQuota.Characteristic.SimpleCharacteristic.Type.ValueType = ...,
203
+ ) -> None: ...
204
+ def ClearField(self, field_name: typing.Literal["type", b"type"]) -> None: ...
205
+
206
+ @typing.final
207
+ class KeyCharacteristic(google.protobuf.message.Message):
208
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
209
+
210
+ class _Type:
211
+ ValueType = typing.NewType("ValueType", builtins.int)
212
+ V: typing_extensions.TypeAlias = ValueType
213
+
214
+ class _TypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[AdvancedRateLimiterRule.DynamicQuota.Characteristic.KeyCharacteristic._Type.ValueType], builtins.type):
215
+ DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
216
+ TYPE_UNSPECIFIED: AdvancedRateLimiterRule.DynamicQuota.Characteristic.KeyCharacteristic._Type.ValueType # 0
217
+ COOKIE_KEY: AdvancedRateLimiterRule.DynamicQuota.Characteristic.KeyCharacteristic._Type.ValueType # 1
218
+ """HTTP cookie key."""
219
+ HEADER_KEY: AdvancedRateLimiterRule.DynamicQuota.Characteristic.KeyCharacteristic._Type.ValueType # 2
220
+ """HTTP header key."""
221
+ QUERY_KEY: AdvancedRateLimiterRule.DynamicQuota.Characteristic.KeyCharacteristic._Type.ValueType # 3
222
+ """Query params key."""
223
+
224
+ class Type(_Type, metaclass=_TypeEnumTypeWrapper):
225
+ """Type of key characteristic."""
226
+
227
+ TYPE_UNSPECIFIED: AdvancedRateLimiterRule.DynamicQuota.Characteristic.KeyCharacteristic.Type.ValueType # 0
228
+ COOKIE_KEY: AdvancedRateLimiterRule.DynamicQuota.Characteristic.KeyCharacteristic.Type.ValueType # 1
229
+ """HTTP cookie key."""
230
+ HEADER_KEY: AdvancedRateLimiterRule.DynamicQuota.Characteristic.KeyCharacteristic.Type.ValueType # 2
231
+ """HTTP header key."""
232
+ QUERY_KEY: AdvancedRateLimiterRule.DynamicQuota.Characteristic.KeyCharacteristic.Type.ValueType # 3
233
+ """Query params key."""
234
+
235
+ TYPE_FIELD_NUMBER: builtins.int
236
+ VALUE_FIELD_NUMBER: builtins.int
237
+ type: global___AdvancedRateLimiterRule.DynamicQuota.Characteristic.KeyCharacteristic.Type.ValueType
238
+ """Type of key characteristic."""
239
+ value: builtins.str
240
+ """String value of the key."""
241
+ def __init__(
242
+ self,
243
+ *,
244
+ type: global___AdvancedRateLimiterRule.DynamicQuota.Characteristic.KeyCharacteristic.Type.ValueType = ...,
245
+ value: builtins.str = ...,
246
+ ) -> None: ...
247
+ def ClearField(self, field_name: typing.Literal["type", b"type", "value", b"value"]) -> None: ...
248
+
249
+ SIMPLE_CHARACTERISTIC_FIELD_NUMBER: builtins.int
250
+ KEY_CHARACTERISTIC_FIELD_NUMBER: builtins.int
251
+ CASE_INSENSITIVE_FIELD_NUMBER: builtins.int
252
+ case_insensitive: builtins.bool
253
+ """Determines case-sensitive or case-insensitive keys matching."""
254
+ @property
255
+ def simple_characteristic(self) -> global___AdvancedRateLimiterRule.DynamicQuota.Characteristic.SimpleCharacteristic:
256
+ """Characteristic automatically based on the Request path, HTTP method, IP address, Region, and Host attributes.
257
+ See [Rules](/docs/smartwebsecurity/concepts/arl#requests-counting) for more details.
258
+ """
259
+
260
+ @property
261
+ def key_characteristic(self) -> global___AdvancedRateLimiterRule.DynamicQuota.Characteristic.KeyCharacteristic:
262
+ """Characteristic based on key match in the Query params, HTTP header, and HTTP cookie attributes.
263
+ See [Rules](/docs/smartwebsecurity/concepts/arl#requests-counting) for more details.
264
+ """
265
+
266
+ def __init__(
267
+ self,
268
+ *,
269
+ simple_characteristic: global___AdvancedRateLimiterRule.DynamicQuota.Characteristic.SimpleCharacteristic | None = ...,
270
+ key_characteristic: global___AdvancedRateLimiterRule.DynamicQuota.Characteristic.KeyCharacteristic | None = ...,
271
+ case_insensitive: builtins.bool = ...,
272
+ ) -> None: ...
273
+ def HasField(self, field_name: typing.Literal["characteristic_specifier", b"characteristic_specifier", "key_characteristic", b"key_characteristic", "simple_characteristic", b"simple_characteristic"]) -> builtins.bool: ...
274
+ def ClearField(self, field_name: typing.Literal["case_insensitive", b"case_insensitive", "characteristic_specifier", b"characteristic_specifier", "key_characteristic", b"key_characteristic", "simple_characteristic", b"simple_characteristic"]) -> None: ...
275
+ def WhichOneof(self, oneof_group: typing.Literal["characteristic_specifier", b"characteristic_specifier"]) -> typing.Literal["simple_characteristic", "key_characteristic"] | None: ...
276
+
277
+ ACTION_FIELD_NUMBER: builtins.int
278
+ CONDITION_FIELD_NUMBER: builtins.int
279
+ LIMIT_FIELD_NUMBER: builtins.int
280
+ PERIOD_FIELD_NUMBER: builtins.int
281
+ CHARACTERISTICS_FIELD_NUMBER: builtins.int
282
+ action: global___AdvancedRateLimiterRule.Action.ValueType
283
+ """Action in case of exceeding this quota."""
284
+ limit: builtins.int
285
+ """Desired maximum number of requests per period.
286
+ Enter an integer within the range of 1 and 9999999999999.
287
+ """
288
+ period: builtins.int
289
+ """Period of time in seconds."""
290
+ @property
291
+ def condition(self) -> yandex.cloud.smartwebsecurity.v1.security_profile_pb2.Condition:
292
+ """The condition for matching the quota."""
293
+
294
+ @property
295
+ def characteristics(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___AdvancedRateLimiterRule.DynamicQuota.Characteristic]:
296
+ """List of characteristics."""
297
+
298
+ def __init__(
299
+ self,
300
+ *,
301
+ action: global___AdvancedRateLimiterRule.Action.ValueType = ...,
302
+ condition: yandex.cloud.smartwebsecurity.v1.security_profile_pb2.Condition | None = ...,
303
+ limit: builtins.int = ...,
304
+ period: builtins.int = ...,
305
+ characteristics: collections.abc.Iterable[global___AdvancedRateLimiterRule.DynamicQuota.Characteristic] | None = ...,
306
+ ) -> None: ...
307
+ def HasField(self, field_name: typing.Literal["condition", b"condition"]) -> builtins.bool: ...
308
+ def ClearField(self, field_name: typing.Literal["action", b"action", "characteristics", b"characteristics", "condition", b"condition", "limit", b"limit", "period", b"period"]) -> None: ...
309
+
310
+ NAME_FIELD_NUMBER: builtins.int
311
+ PRIORITY_FIELD_NUMBER: builtins.int
312
+ DESCRIPTION_FIELD_NUMBER: builtins.int
313
+ DRY_RUN_FIELD_NUMBER: builtins.int
314
+ STATIC_QUOTA_FIELD_NUMBER: builtins.int
315
+ DYNAMIC_QUOTA_FIELD_NUMBER: builtins.int
316
+ name: builtins.str
317
+ """Name of the rule. The name is unique within the ARL profile. 1-50 characters long."""
318
+ priority: builtins.int
319
+ """Determines the priority in case there are several matched rules.
320
+ Enter an integer within the range of 1 and 999999.
321
+ The rule priority must be unique within the entire ARL profile.
322
+ A lower numeric value means a higher priority.
323
+ """
324
+ description: builtins.str
325
+ """Optional description of the rule. 0-512 characters long."""
326
+ dry_run: builtins.bool
327
+ """This allows you to evaluate backend capabilities and find the optimum limit values.
328
+ Requests will not be blocked in this mode.
329
+ """
330
+ @property
331
+ def static_quota(self) -> global___AdvancedRateLimiterRule.StaticQuota:
332
+ """Static quota. Counting each request individually."""
333
+
334
+ @property
335
+ def dynamic_quota(self) -> global___AdvancedRateLimiterRule.DynamicQuota:
336
+ """Dynamic quota. Grouping requests by a certain attribute and limiting the number of groups."""
337
+
338
+ def __init__(
339
+ self,
340
+ *,
341
+ name: builtins.str = ...,
342
+ priority: builtins.int = ...,
343
+ description: builtins.str = ...,
344
+ dry_run: builtins.bool = ...,
345
+ static_quota: global___AdvancedRateLimiterRule.StaticQuota | None = ...,
346
+ dynamic_quota: global___AdvancedRateLimiterRule.DynamicQuota | None = ...,
347
+ ) -> None: ...
348
+ def HasField(self, field_name: typing.Literal["dynamic_quota", b"dynamic_quota", "rule_specifier", b"rule_specifier", "static_quota", b"static_quota"]) -> builtins.bool: ...
349
+ def ClearField(self, field_name: typing.Literal["description", b"description", "dry_run", b"dry_run", "dynamic_quota", b"dynamic_quota", "name", b"name", "priority", b"priority", "rule_specifier", b"rule_specifier", "static_quota", b"static_quota"]) -> None: ...
350
+ def WhichOneof(self, oneof_group: typing.Literal["rule_specifier", b"rule_specifier"]) -> typing.Literal["static_quota", "dynamic_quota"] | None: ...
351
+
352
+ global___AdvancedRateLimiterRule = AdvancedRateLimiterRule
@@ -0,0 +1,4 @@
1
+ # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
2
+ """Client and server classes corresponding to protobuf-defined services."""
3
+ import grpc
4
+
@@ -0,0 +1,17 @@
1
+ """
2
+ @generated by mypy-protobuf. Do not edit manually!
3
+ isort:skip_file
4
+ """
5
+
6
+ import abc
7
+ import collections.abc
8
+ import grpc
9
+ import grpc.aio
10
+ import typing
11
+
12
+ _T = typing.TypeVar("_T")
13
+
14
+ class _MaybeAsyncIterator(collections.abc.AsyncIterator[_T], collections.abc.Iterator[_T], metaclass=abc.ABCMeta): ...
15
+
16
+ class _ServicerContext(grpc.ServicerContext, grpc.aio.ServicerContext): # type: ignore[misc, type-arg]
17
+ ...