gcore 0.9.0__py3-none-any.whl → 0.10.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 gcore might be problematic. Click here for more details.

Files changed (132) hide show
  1. gcore/_version.py +1 -1
  2. gcore/resources/cloud/load_balancers/pools/health_monitors.py +8 -4
  3. gcore/resources/cloud/load_balancers/pools/members.py +2 -2
  4. gcore/resources/security/bgp_announces.py +15 -15
  5. gcore/resources/waap/__init__.py +14 -0
  6. gcore/resources/waap/custom_page_sets.py +40 -34
  7. gcore/resources/waap/domains/__init__.py +14 -28
  8. gcore/resources/waap/domains/advanced_rules.py +5 -8
  9. gcore/resources/waap/domains/{api_discovery/api_discovery.py → api_discovery.py} +292 -59
  10. gcore/resources/waap/domains/api_path_groups.py +5 -5
  11. gcore/resources/waap/domains/api_paths.py +15 -17
  12. gcore/resources/waap/domains/custom_rules.py +5 -8
  13. gcore/resources/waap/domains/domains.py +120 -64
  14. gcore/resources/waap/domains/firewall_rules.py +3 -5
  15. gcore/resources/waap/domains/insight_silences.py +28 -5
  16. gcore/resources/waap/domains/insights.py +36 -10
  17. gcore/resources/waap/domains/{analytics/analytics.py → statistics.py} +514 -213
  18. gcore/resources/waap/insights.py +233 -0
  19. gcore/resources/waap/ip_info/__init__.py +33 -0
  20. gcore/resources/waap/{ip_info.py → ip_info/ip_info.py} +149 -235
  21. gcore/resources/waap/ip_info/metrics.py +203 -0
  22. gcore/resources/waap/waap.py +40 -8
  23. gcore/types/cloud/health_monitor.py +6 -0
  24. gcore/types/cloud/load_balancer_create_params.py +8 -3
  25. gcore/types/cloud/load_balancers/pool_create_params.py +8 -3
  26. gcore/types/cloud/load_balancers/pool_update_params.py +8 -3
  27. gcore/types/cloud/load_balancers/pools/health_monitor_create_params.py +7 -2
  28. gcore/types/cloud/load_balancers/pools/member_add_params.py +1 -1
  29. gcore/types/cloud/region.py +0 -3
  30. gcore/types/security/__init__.py +1 -1
  31. gcore/types/security/{bgp_announce_change_params.py → bgp_announce_toggle_params.py} +2 -2
  32. gcore/types/waap/__init__.py +6 -54
  33. gcore/types/waap/custom_page_set_create_params.py +121 -14
  34. gcore/types/waap/custom_page_set_preview_params.py +11 -4
  35. gcore/types/waap/custom_page_set_update_params.py +122 -15
  36. gcore/types/waap/domain_list_params.py +1 -3
  37. gcore/types/waap/domains/__init__.py +28 -18
  38. gcore/types/waap/domains/advanced_rule_list_params.py +1 -3
  39. gcore/types/waap/domains/{api_discovery/scan_result_list_params.py → api_discovery_list_scan_results_params.py} +2 -2
  40. gcore/types/waap/domains/{api_path_group_list_response.py → api_path_group_list.py} +2 -2
  41. gcore/types/waap/domains/custom_rule_list_params.py +1 -3
  42. gcore/types/waap/domains/insight_list_params.py +16 -6
  43. gcore/types/waap/domains/insight_replace_params.py +2 -4
  44. gcore/types/waap/domains/insight_silence_list_params.py +13 -4
  45. gcore/types/waap/domains/{analytics_list_ddos_attacks_params.py → statistic_get_ddos_attacks_params.py} +2 -2
  46. gcore/types/waap/domains/{analytics_list_ddos_info_params.py → statistic_get_ddos_info_params.py} +2 -2
  47. gcore/types/waap/domains/{analytics_get_event_statistics_params.py → statistic_get_events_aggregated_params.py} +2 -2
  48. gcore/types/waap/domains/{analytics/request_list_params.py → statistic_get_requests_series_params.py} +27 -5
  49. gcore/types/waap/domains/{analytics_list_event_traffic_params.py → statistic_get_traffic_series_params.py} +4 -5
  50. gcore/types/waap/domains/statistic_get_traffic_series_response.py +10 -0
  51. gcore/types/waap/{waap_advanced_rule.py → domains/waap_advanced_rule.py} +1 -1
  52. gcore/types/waap/domains/{api_discovery_get_settings_response.py → waap_api_discovery_settings.py} +2 -2
  53. gcore/types/waap/domains/{api_path_get_response.py → waap_api_path.py} +2 -2
  54. gcore/types/waap/domains/{api_discovery/scan_result_get_response.py → waap_api_scan_result.py} +3 -3
  55. gcore/types/waap/{waap_blocked_statistics.py → domains/waap_blocked_statistics.py} +1 -1
  56. gcore/types/waap/{waap_count_statistics.py → domains/waap_count_statistics.py} +1 -1
  57. gcore/types/waap/{waap_custom_rule.py → domains/waap_custom_rule.py} +1 -1
  58. gcore/types/waap/{waap_ddos_attack.py → domains/waap_ddos_attack.py} +1 -1
  59. gcore/types/waap/{waap_ddos_info.py → domains/waap_ddos_info.py} +1 -1
  60. gcore/types/waap/{waap_event_statistics.py → domains/waap_event_statistics.py} +1 -1
  61. gcore/types/waap/{waap_firewall_rule.py → domains/waap_firewall_rule.py} +1 -1
  62. gcore/types/waap/{waap_insight.py → domains/waap_insight.py} +3 -3
  63. gcore/types/waap/{waap_insight_silence.py → domains/waap_insight_silence.py} +1 -1
  64. gcore/types/waap/domains/waap_request_details.py +185 -0
  65. gcore/types/waap/{waap_request_summary.py → domains/waap_request_summary.py} +1 -1
  66. gcore/types/waap/domains/{api_discovery_scan_openapi_response.py → waap_task_id.py} +2 -2
  67. gcore/types/waap/{waap_traffic_metrics.py → domains/waap_traffic_metrics.py} +1 -1
  68. gcore/types/waap/insight_list_types_params.py +28 -0
  69. gcore/types/waap/ip_info/__init__.py +6 -0
  70. gcore/types/waap/{ip_info_get_counts_params.py → ip_info/metric_list_params.py} +2 -2
  71. gcore/types/waap/{waap_ip_info_counts.py → ip_info/waap_ip_info_counts.py} +1 -1
  72. gcore/types/waap/{ip_info_get_params.py → ip_info_get_ip_info_params.py} +2 -2
  73. gcore/types/waap/{waap_ip_info.py → ip_info_get_ip_info_response.py} +2 -2
  74. gcore/types/waap/ip_info_get_top_urls_response.py +12 -3
  75. gcore/types/waap/{ip_info_get_top_sessions_params.py → ip_info_get_top_user_sessions_params.py} +2 -2
  76. gcore/types/waap/{ip_info_get_top_sessions_response.py → ip_info_get_top_user_sessions_response.py} +2 -2
  77. gcore/types/waap/waap_custom_page_set.py +113 -13
  78. gcore/types/waap/waap_detailed_domain.py +2 -2
  79. gcore/types/waap/waap_insight_type.py +33 -0
  80. gcore/types/waap/waap_rule_set.py +26 -3
  81. gcore/types/waap/waap_summary_domain.py +2 -2
  82. {gcore-0.9.0.dist-info → gcore-0.10.0.dist-info}/METADATA +1 -1
  83. {gcore-0.9.0.dist-info → gcore-0.10.0.dist-info}/RECORD +85 -124
  84. gcore/resources/waap/domains/analytics/__init__.py +0 -33
  85. gcore/resources/waap/domains/analytics/requests.py +0 -378
  86. gcore/resources/waap/domains/api_discovery/__init__.py +0 -33
  87. gcore/resources/waap/domains/api_discovery/scan_results.py +0 -352
  88. gcore/resources/waap/domains/policies.py +0 -173
  89. gcore/types/waap/domains/analytics/__init__.py +0 -5
  90. gcore/types/waap/domains/analytics_list_event_traffic_response.py +0 -10
  91. gcore/types/waap/domains/api_discovery/__init__.py +0 -7
  92. gcore/types/waap/domains/api_discovery/scan_result_list_response.py +0 -29
  93. gcore/types/waap/domains/api_discovery_update_settings_response.py +0 -36
  94. gcore/types/waap/domains/api_discovery_upload_openapi_response.py +0 -10
  95. gcore/types/waap/domains/api_path_create_response.py +0 -50
  96. gcore/types/waap/domains/api_path_list_response.py +0 -50
  97. gcore/types/waap/waap_block_csrf_page_data.py +0 -28
  98. gcore/types/waap/waap_block_csrf_page_data_param.py +0 -28
  99. gcore/types/waap/waap_block_page_data.py +0 -28
  100. gcore/types/waap/waap_block_page_data_param.py +0 -28
  101. gcore/types/waap/waap_captcha_page_data.py +0 -31
  102. gcore/types/waap/waap_captcha_page_data_param.py +0 -31
  103. gcore/types/waap/waap_common_tag.py +0 -16
  104. gcore/types/waap/waap_cookie_disabled_page_data.py +0 -18
  105. gcore/types/waap/waap_cookie_disabled_page_data_param.py +0 -18
  106. gcore/types/waap/waap_customer_rule_state.py +0 -7
  107. gcore/types/waap/waap_domain_policy.py +0 -29
  108. gcore/types/waap/waap_domain_status.py +0 -7
  109. gcore/types/waap/waap_handshake_page_data.py +0 -25
  110. gcore/types/waap/waap_handshake_page_data_param.py +0 -25
  111. gcore/types/waap/waap_insight_silence_sort_by.py +0 -9
  112. gcore/types/waap/waap_insight_sort_by.py +0 -20
  113. gcore/types/waap/waap_insight_status.py +0 -7
  114. gcore/types/waap/waap_javascript_disabled_page_data.py +0 -18
  115. gcore/types/waap/waap_javascript_disabled_page_data_param.py +0 -18
  116. gcore/types/waap/waap_network_details.py +0 -17
  117. gcore/types/waap/waap_page_type.py +0 -9
  118. gcore/types/waap/waap_paginated_custom_page_set.py +0 -22
  119. gcore/types/waap/waap_paginated_ddos_attack.py +0 -22
  120. gcore/types/waap/waap_paginated_ddos_info.py +0 -22
  121. gcore/types/waap/waap_paginated_request_summary.py +0 -22
  122. gcore/types/waap/waap_pattern_matched_tag.py +0 -37
  123. gcore/types/waap/waap_policy_action.py +0 -7
  124. gcore/types/waap/waap_request_details.py +0 -92
  125. gcore/types/waap/waap_request_organization.py +0 -13
  126. gcore/types/waap/waap_resolution.py +0 -7
  127. gcore/types/waap/waap_rule_action_type.py +0 -7
  128. gcore/types/waap/waap_top_url.py +0 -13
  129. gcore/types/waap/waap_traffic_type.py +0 -28
  130. gcore/types/waap/waap_user_agent_details.py +0 -40
  131. {gcore-0.9.0.dist-info → gcore-0.10.0.dist-info}/WHEEL +0 -0
  132. {gcore-0.9.0.dist-info → gcore-0.10.0.dist-info}/licenses/LICENSE +0 -0
@@ -3,14 +3,114 @@
3
3
  from typing import List, Optional
4
4
 
5
5
  from ..._models import BaseModel
6
- from .waap_block_page_data import WaapBlockPageData
7
- from .waap_captcha_page_data import WaapCaptchaPageData
8
- from .waap_handshake_page_data import WaapHandshakePageData
9
- from .waap_block_csrf_page_data import WaapBlockCsrfPageData
10
- from .waap_cookie_disabled_page_data import WaapCookieDisabledPageData
11
- from .waap_javascript_disabled_page_data import WaapJavascriptDisabledPageData
12
6
 
13
- __all__ = ["WaapCustomPageSet"]
7
+ __all__ = ["WaapCustomPageSet", "Block", "BlockCsrf", "Captcha", "CookieDisabled", "Handshake", "JavascriptDisabled"]
8
+
9
+
10
+ class Block(BaseModel):
11
+ enabled: bool
12
+ """Indicates whether the custom custom page is active or inactive"""
13
+
14
+ header: Optional[str] = None
15
+ """The text to display in the header of the custom page"""
16
+
17
+ logo: Optional[str] = None
18
+ """
19
+ Supported image types are JPEG, PNG and JPG, size is limited to width 450px,
20
+ height 130px. This should be a base 64 encoding of the full HTML img tag
21
+ compatible image, with the header included.
22
+ """
23
+
24
+ text: Optional[str] = None
25
+ """The text to display in the body of the custom page"""
26
+
27
+ title: Optional[str] = None
28
+ """The text to display in the title of the custom page"""
29
+
30
+
31
+ class BlockCsrf(BaseModel):
32
+ enabled: bool
33
+ """Indicates whether the custom custom page is active or inactive"""
34
+
35
+ header: Optional[str] = None
36
+ """The text to display in the header of the custom page"""
37
+
38
+ logo: Optional[str] = None
39
+ """
40
+ Supported image types are JPEG, PNG and JPG, size is limited to width 450px,
41
+ height 130px. This should be a base 64 encoding of the full HTML img tag
42
+ compatible image, with the header included.
43
+ """
44
+
45
+ text: Optional[str] = None
46
+ """The text to display in the body of the custom page"""
47
+
48
+ title: Optional[str] = None
49
+ """The text to display in the title of the custom page"""
50
+
51
+
52
+ class Captcha(BaseModel):
53
+ enabled: bool
54
+ """Indicates whether the custom custom page is active or inactive"""
55
+
56
+ error: Optional[str] = None
57
+ """Error message"""
58
+
59
+ header: Optional[str] = None
60
+ """The text to display in the header of the custom page"""
61
+
62
+ logo: Optional[str] = None
63
+ """
64
+ Supported image types are JPEG, PNG and JPG, size is limited to width 450px,
65
+ height 130px. This should be a base 64 encoding of the full HTML img tag
66
+ compatible image, with the header included.
67
+ """
68
+
69
+ text: Optional[str] = None
70
+ """The text to display in the body of the custom page"""
71
+
72
+ title: Optional[str] = None
73
+ """The text to display in the title of the custom page"""
74
+
75
+
76
+ class CookieDisabled(BaseModel):
77
+ enabled: bool
78
+ """Indicates whether the custom custom page is active or inactive"""
79
+
80
+ header: Optional[str] = None
81
+ """The text to display in the header of the custom page"""
82
+
83
+ text: Optional[str] = None
84
+ """The text to display in the body of the custom page"""
85
+
86
+
87
+ class Handshake(BaseModel):
88
+ enabled: bool
89
+ """Indicates whether the custom custom page is active or inactive"""
90
+
91
+ header: Optional[str] = None
92
+ """The text to display in the header of the custom page"""
93
+
94
+ logo: Optional[str] = None
95
+ """
96
+ Supported image types are JPEG, PNG and JPG, size is limited to width 450px,
97
+ height 130px. This should be a base 64 encoding of the full HTML img tag
98
+ compatible image, with the header included.
99
+ """
100
+
101
+ title: Optional[str] = None
102
+ """The text to display in the title of the custom page"""
103
+
104
+
105
+ class JavascriptDisabled(BaseModel):
106
+ enabled: bool
107
+ """Indicates whether the custom custom page is active or inactive"""
108
+
109
+ header: Optional[str] = None
110
+ """The text to display in the header of the custom page"""
111
+
112
+ text: Optional[str] = None
113
+ """The text to display in the body of the custom page"""
14
114
 
15
115
 
16
116
  class WaapCustomPageSet(BaseModel):
@@ -20,17 +120,17 @@ class WaapCustomPageSet(BaseModel):
20
120
  name: str
21
121
  """Name of the custom page set"""
22
122
 
23
- block: Optional[WaapBlockPageData] = None
123
+ block: Optional[Block] = None
24
124
 
25
- block_csrf: Optional[WaapBlockCsrfPageData] = None
125
+ block_csrf: Optional[BlockCsrf] = None
26
126
 
27
- captcha: Optional[WaapCaptchaPageData] = None
127
+ captcha: Optional[Captcha] = None
28
128
 
29
- cookie_disabled: Optional[WaapCookieDisabledPageData] = None
129
+ cookie_disabled: Optional[CookieDisabled] = None
30
130
 
31
131
  domains: Optional[List[int]] = None
32
132
  """List of domain IDs that are associated with this page set"""
33
133
 
34
- handshake: Optional[WaapHandshakePageData] = None
134
+ handshake: Optional[Handshake] = None
35
135
 
36
- javascript_disabled: Optional[WaapJavascriptDisabledPageData] = None
136
+ javascript_disabled: Optional[JavascriptDisabled] = None
@@ -2,9 +2,9 @@
2
2
 
3
3
  from typing import Dict, Optional
4
4
  from datetime import datetime
5
+ from typing_extensions import Literal
5
6
 
6
7
  from ..._models import BaseModel
7
- from .waap_domain_status import WaapDomainStatus
8
8
 
9
9
  __all__ = ["WaapDetailedDomain", "Quotas"]
10
10
 
@@ -30,7 +30,7 @@ class WaapDetailedDomain(BaseModel):
30
30
  name: str
31
31
  """The domain name"""
32
32
 
33
- status: WaapDomainStatus
33
+ status: Literal["active", "bypass", "monitor", "locked"]
34
34
  """The different statuses a domain can have"""
35
35
 
36
36
  quotas: Optional[Dict[str, Quotas]] = None
@@ -0,0 +1,33 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List
4
+
5
+ from ..._models import BaseModel
6
+
7
+ __all__ = ["WaapInsightType"]
8
+
9
+
10
+ class WaapInsightType(BaseModel):
11
+ description: str
12
+ """The description of the insight type"""
13
+
14
+ insight_frequency: int
15
+ """The frequency of the insight type"""
16
+
17
+ insight_grouping_dimensions: List[str]
18
+ """The grouping dimensions of the insight type"""
19
+
20
+ insight_template: str
21
+ """The insight template"""
22
+
23
+ labels: List[str]
24
+ """The labels of the insight type"""
25
+
26
+ name: str
27
+ """The name of the insight type"""
28
+
29
+ recommendation_template: str
30
+ """The recommendation template"""
31
+
32
+ slug: str
33
+ """The slug of the insight type"""
@@ -1,11 +1,11 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
3
  from typing import List, Optional
4
+ from typing_extensions import Literal
4
5
 
5
6
  from ..._models import BaseModel
6
- from .waap_domain_policy import WaapDomainPolicy
7
7
 
8
- __all__ = ["WaapRuleSet", "Tag"]
8
+ __all__ = ["WaapRuleSet", "Tag", "Rule"]
9
9
 
10
10
 
11
11
  class Tag(BaseModel):
@@ -19,6 +19,29 @@ class Tag(BaseModel):
19
19
  """Name of the tag."""
20
20
 
21
21
 
22
+ class Rule(BaseModel):
23
+ id: str
24
+ """Unique identifier for the security rule"""
25
+
26
+ action: Literal["Allow", "Block", "Captcha", "Gateway", "Handshake", "Monitor", "Composite"]
27
+ """The action taken by the WAAP upon rule activation."""
28
+
29
+ description: str
30
+ """Detailed description of the security rule"""
31
+
32
+ group: str
33
+ """The rule set group name to which the rule belongs"""
34
+
35
+ mode: bool
36
+ """Indicates if the security rule is active"""
37
+
38
+ name: str
39
+ """Name of the security rule"""
40
+
41
+ rule_set_id: int
42
+ """Identifier of the rule set to which the rule belongs"""
43
+
44
+
22
45
  class WaapRuleSet(BaseModel):
23
46
  id: int
24
47
  """Identifier of the rule set."""
@@ -38,4 +61,4 @@ class WaapRuleSet(BaseModel):
38
61
  resource_slug: Optional[str] = None
39
62
  """The resource slug associated with the rule set."""
40
63
 
41
- rules: Optional[List[WaapDomainPolicy]] = None
64
+ rules: Optional[List[Rule]] = None
@@ -2,9 +2,9 @@
2
2
 
3
3
  from typing import Optional
4
4
  from datetime import datetime
5
+ from typing_extensions import Literal
5
6
 
6
7
  from ..._models import BaseModel
7
- from .waap_domain_status import WaapDomainStatus
8
8
 
9
9
  __all__ = ["WaapSummaryDomain"]
10
10
 
@@ -22,5 +22,5 @@ class WaapSummaryDomain(BaseModel):
22
22
  name: str
23
23
  """The domain name"""
24
24
 
25
- status: WaapDomainStatus
25
+ status: Literal["active", "bypass", "monitor", "locked"]
26
26
  """The different statuses a domain can have"""
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: gcore
3
- Version: 0.9.0
3
+ Version: 0.10.0
4
4
  Summary: The official Python library for the gcore API
5
5
  Project-URL: Homepage, https://github.com/G-Core/gcore-python
6
6
  Project-URL: Repository, https://github.com/G-Core/gcore-python