pulumi-azure-native 2.74.0a1732531694__py3-none-any.whl → 2.75.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 pulumi-azure-native might be problematic. Click here for more details.

Files changed (189) hide show
  1. pulumi_azure_native/__init__.py +35 -0
  2. pulumi_azure_native/azureplaywrightservice/__init__.py +3 -0
  3. pulumi_azure_native/azureplaywrightservice/account.py +3 -3
  4. pulumi_azure_native/azureplaywrightservice/get_account.py +2 -2
  5. pulumi_azure_native/azureplaywrightservice/v20231001preview/account.py +1 -1
  6. pulumi_azure_native/azureplaywrightservice/v20240201preview/account.py +1 -1
  7. pulumi_azure_native/azureplaywrightservice/v20240801preview/account.py +1 -1
  8. pulumi_azure_native/azureplaywrightservice/v20241201/__init__.py +11 -0
  9. pulumi_azure_native/azureplaywrightservice/v20241201/_enums.py +23 -0
  10. pulumi_azure_native/azureplaywrightservice/v20241201/account.py +380 -0
  11. pulumi_azure_native/azureplaywrightservice/v20241201/get_account.py +241 -0
  12. pulumi_azure_native/azureplaywrightservice/v20241201/outputs.py +131 -0
  13. pulumi_azure_native/machinelearningservices/v20241001preview/outputs.py +57 -29
  14. pulumi_azure_native/pulumi-plugin.json +1 -1
  15. pulumi_azure_native/signalrservice/__init__.py +3 -0
  16. pulumi_azure_native/signalrservice/get_signal_r.py +2 -2
  17. pulumi_azure_native/signalrservice/get_signal_r_custom_certificate.py +2 -2
  18. pulumi_azure_native/signalrservice/get_signal_r_custom_domain.py +2 -2
  19. pulumi_azure_native/signalrservice/get_signal_r_private_endpoint_connection.py +2 -2
  20. pulumi_azure_native/signalrservice/get_signal_r_replica.py +2 -2
  21. pulumi_azure_native/signalrservice/get_signal_r_shared_private_link_resource.py +2 -2
  22. pulumi_azure_native/signalrservice/list_signal_r_keys.py +2 -2
  23. pulumi_azure_native/signalrservice/signal_r.py +3 -3
  24. pulumi_azure_native/signalrservice/signal_r_custom_certificate.py +3 -3
  25. pulumi_azure_native/signalrservice/signal_r_custom_domain.py +3 -3
  26. pulumi_azure_native/signalrservice/signal_r_private_endpoint_connection.py +3 -3
  27. pulumi_azure_native/signalrservice/signal_r_replica.py +3 -3
  28. pulumi_azure_native/signalrservice/signal_r_shared_private_link_resource.py +3 -3
  29. pulumi_azure_native/signalrservice/v20230201/signal_r.py +1 -1
  30. pulumi_azure_native/signalrservice/v20230201/signal_r_custom_certificate.py +1 -1
  31. pulumi_azure_native/signalrservice/v20230201/signal_r_custom_domain.py +1 -1
  32. pulumi_azure_native/signalrservice/v20230201/signal_r_private_endpoint_connection.py +1 -1
  33. pulumi_azure_native/signalrservice/v20230201/signal_r_shared_private_link_resource.py +1 -1
  34. pulumi_azure_native/signalrservice/v20230301preview/signal_r.py +1 -1
  35. pulumi_azure_native/signalrservice/v20230301preview/signal_r_custom_certificate.py +1 -1
  36. pulumi_azure_native/signalrservice/v20230301preview/signal_r_custom_domain.py +1 -1
  37. pulumi_azure_native/signalrservice/v20230301preview/signal_r_private_endpoint_connection.py +1 -1
  38. pulumi_azure_native/signalrservice/v20230301preview/signal_r_replica.py +1 -1
  39. pulumi_azure_native/signalrservice/v20230301preview/signal_r_shared_private_link_resource.py +1 -1
  40. pulumi_azure_native/signalrservice/v20230601preview/signal_r.py +1 -1
  41. pulumi_azure_native/signalrservice/v20230601preview/signal_r_custom_certificate.py +1 -1
  42. pulumi_azure_native/signalrservice/v20230601preview/signal_r_custom_domain.py +1 -1
  43. pulumi_azure_native/signalrservice/v20230601preview/signal_r_private_endpoint_connection.py +1 -1
  44. pulumi_azure_native/signalrservice/v20230601preview/signal_r_replica.py +1 -1
  45. pulumi_azure_native/signalrservice/v20230601preview/signal_r_shared_private_link_resource.py +1 -1
  46. pulumi_azure_native/signalrservice/v20230801preview/signal_r.py +1 -1
  47. pulumi_azure_native/signalrservice/v20230801preview/signal_r_custom_certificate.py +1 -1
  48. pulumi_azure_native/signalrservice/v20230801preview/signal_r_custom_domain.py +1 -1
  49. pulumi_azure_native/signalrservice/v20230801preview/signal_r_private_endpoint_connection.py +1 -1
  50. pulumi_azure_native/signalrservice/v20230801preview/signal_r_replica.py +1 -1
  51. pulumi_azure_native/signalrservice/v20230801preview/signal_r_shared_private_link_resource.py +1 -1
  52. pulumi_azure_native/signalrservice/v20240101preview/signal_r.py +1 -1
  53. pulumi_azure_native/signalrservice/v20240101preview/signal_r_custom_certificate.py +1 -1
  54. pulumi_azure_native/signalrservice/v20240101preview/signal_r_custom_domain.py +1 -1
  55. pulumi_azure_native/signalrservice/v20240101preview/signal_r_private_endpoint_connection.py +1 -1
  56. pulumi_azure_native/signalrservice/v20240101preview/signal_r_replica.py +1 -1
  57. pulumi_azure_native/signalrservice/v20240101preview/signal_r_shared_private_link_resource.py +1 -1
  58. pulumi_azure_native/signalrservice/v20240301/signal_r.py +1 -1
  59. pulumi_azure_native/signalrservice/v20240301/signal_r_custom_certificate.py +1 -1
  60. pulumi_azure_native/signalrservice/v20240301/signal_r_custom_domain.py +1 -1
  61. pulumi_azure_native/signalrservice/v20240301/signal_r_private_endpoint_connection.py +1 -1
  62. pulumi_azure_native/signalrservice/v20240301/signal_r_replica.py +1 -1
  63. pulumi_azure_native/signalrservice/v20240301/signal_r_shared_private_link_resource.py +1 -1
  64. pulumi_azure_native/signalrservice/v20240401preview/signal_r.py +1 -1
  65. pulumi_azure_native/signalrservice/v20240401preview/signal_r_custom_certificate.py +1 -1
  66. pulumi_azure_native/signalrservice/v20240401preview/signal_r_custom_domain.py +1 -1
  67. pulumi_azure_native/signalrservice/v20240401preview/signal_r_private_endpoint_connection.py +1 -1
  68. pulumi_azure_native/signalrservice/v20240401preview/signal_r_replica.py +1 -1
  69. pulumi_azure_native/signalrservice/v20240401preview/signal_r_shared_private_link_resource.py +1 -1
  70. pulumi_azure_native/signalrservice/v20240801preview/signal_r.py +1 -1
  71. pulumi_azure_native/signalrservice/v20240801preview/signal_r_custom_certificate.py +1 -1
  72. pulumi_azure_native/signalrservice/v20240801preview/signal_r_custom_domain.py +1 -1
  73. pulumi_azure_native/signalrservice/v20240801preview/signal_r_private_endpoint_connection.py +1 -1
  74. pulumi_azure_native/signalrservice/v20240801preview/signal_r_replica.py +1 -1
  75. pulumi_azure_native/signalrservice/v20240801preview/signal_r_shared_private_link_resource.py +1 -1
  76. pulumi_azure_native/signalrservice/v20241001preview/__init__.py +23 -0
  77. pulumi_azure_native/signalrservice/v20241001preview/_enums.py +109 -0
  78. pulumi_azure_native/signalrservice/v20241001preview/_inputs.py +1976 -0
  79. pulumi_azure_native/signalrservice/v20241001preview/get_signal_r.py +536 -0
  80. pulumi_azure_native/signalrservice/v20241001preview/get_signal_r_custom_certificate.py +191 -0
  81. pulumi_azure_native/signalrservice/v20241001preview/get_signal_r_custom_domain.py +177 -0
  82. pulumi_azure_native/signalrservice/v20241001preview/get_signal_r_private_endpoint_connection.py +191 -0
  83. pulumi_azure_native/signalrservice/v20241001preview/get_signal_r_replica.py +222 -0
  84. pulumi_azure_native/signalrservice/v20241001preview/get_signal_r_shared_private_link_resource.py +219 -0
  85. pulumi_azure_native/signalrservice/v20241001preview/list_signal_r_keys.py +128 -0
  86. pulumi_azure_native/signalrservice/v20241001preview/outputs.py +2015 -0
  87. pulumi_azure_native/signalrservice/v20241001preview/signal_r.py +892 -0
  88. pulumi_azure_native/signalrservice/v20241001preview/signal_r_custom_certificate.py +289 -0
  89. pulumi_azure_native/signalrservice/v20241001preview/signal_r_custom_domain.py +260 -0
  90. pulumi_azure_native/signalrservice/v20241001preview/signal_r_private_endpoint_connection.py +270 -0
  91. pulumi_azure_native/signalrservice/v20241001preview/signal_r_replica.py +367 -0
  92. pulumi_azure_native/signalrservice/v20241001preview/signal_r_shared_private_link_resource.py +328 -0
  93. pulumi_azure_native/webpubsub/__init__.py +3 -0
  94. pulumi_azure_native/webpubsub/get_web_pub_sub.py +2 -2
  95. pulumi_azure_native/webpubsub/get_web_pub_sub_custom_certificate.py +2 -2
  96. pulumi_azure_native/webpubsub/get_web_pub_sub_custom_domain.py +2 -2
  97. pulumi_azure_native/webpubsub/get_web_pub_sub_hub.py +2 -2
  98. pulumi_azure_native/webpubsub/get_web_pub_sub_private_endpoint_connection.py +2 -2
  99. pulumi_azure_native/webpubsub/get_web_pub_sub_replica.py +2 -2
  100. pulumi_azure_native/webpubsub/get_web_pub_sub_shared_private_link_resource.py +2 -2
  101. pulumi_azure_native/webpubsub/list_web_pub_sub_keys.py +2 -2
  102. pulumi_azure_native/webpubsub/v20210401preview/web_pub_sub.py +1 -1
  103. pulumi_azure_native/webpubsub/v20210601preview/web_pub_sub.py +1 -1
  104. pulumi_azure_native/webpubsub/v20210901preview/web_pub_sub.py +1 -1
  105. pulumi_azure_native/webpubsub/v20230201/web_pub_sub.py +1 -1
  106. pulumi_azure_native/webpubsub/v20230201/web_pub_sub_custom_certificate.py +1 -1
  107. pulumi_azure_native/webpubsub/v20230201/web_pub_sub_custom_domain.py +1 -1
  108. pulumi_azure_native/webpubsub/v20230201/web_pub_sub_hub.py +1 -1
  109. pulumi_azure_native/webpubsub/v20230201/web_pub_sub_private_endpoint_connection.py +1 -1
  110. pulumi_azure_native/webpubsub/v20230201/web_pub_sub_shared_private_link_resource.py +1 -1
  111. pulumi_azure_native/webpubsub/v20230301preview/web_pub_sub.py +1 -1
  112. pulumi_azure_native/webpubsub/v20230301preview/web_pub_sub_custom_certificate.py +1 -1
  113. pulumi_azure_native/webpubsub/v20230301preview/web_pub_sub_custom_domain.py +1 -1
  114. pulumi_azure_native/webpubsub/v20230301preview/web_pub_sub_hub.py +1 -1
  115. pulumi_azure_native/webpubsub/v20230301preview/web_pub_sub_private_endpoint_connection.py +1 -1
  116. pulumi_azure_native/webpubsub/v20230301preview/web_pub_sub_replica.py +1 -1
  117. pulumi_azure_native/webpubsub/v20230301preview/web_pub_sub_shared_private_link_resource.py +1 -1
  118. pulumi_azure_native/webpubsub/v20230601preview/web_pub_sub.py +1 -1
  119. pulumi_azure_native/webpubsub/v20230601preview/web_pub_sub_custom_certificate.py +1 -1
  120. pulumi_azure_native/webpubsub/v20230601preview/web_pub_sub_custom_domain.py +1 -1
  121. pulumi_azure_native/webpubsub/v20230601preview/web_pub_sub_hub.py +1 -1
  122. pulumi_azure_native/webpubsub/v20230601preview/web_pub_sub_private_endpoint_connection.py +1 -1
  123. pulumi_azure_native/webpubsub/v20230601preview/web_pub_sub_replica.py +1 -1
  124. pulumi_azure_native/webpubsub/v20230601preview/web_pub_sub_shared_private_link_resource.py +1 -1
  125. pulumi_azure_native/webpubsub/v20230801preview/web_pub_sub.py +1 -1
  126. pulumi_azure_native/webpubsub/v20230801preview/web_pub_sub_custom_certificate.py +1 -1
  127. pulumi_azure_native/webpubsub/v20230801preview/web_pub_sub_custom_domain.py +1 -1
  128. pulumi_azure_native/webpubsub/v20230801preview/web_pub_sub_hub.py +1 -1
  129. pulumi_azure_native/webpubsub/v20230801preview/web_pub_sub_private_endpoint_connection.py +1 -1
  130. pulumi_azure_native/webpubsub/v20230801preview/web_pub_sub_replica.py +1 -1
  131. pulumi_azure_native/webpubsub/v20230801preview/web_pub_sub_shared_private_link_resource.py +1 -1
  132. pulumi_azure_native/webpubsub/v20240101preview/web_pub_sub.py +1 -1
  133. pulumi_azure_native/webpubsub/v20240101preview/web_pub_sub_custom_certificate.py +1 -1
  134. pulumi_azure_native/webpubsub/v20240101preview/web_pub_sub_custom_domain.py +1 -1
  135. pulumi_azure_native/webpubsub/v20240101preview/web_pub_sub_hub.py +1 -1
  136. pulumi_azure_native/webpubsub/v20240101preview/web_pub_sub_private_endpoint_connection.py +1 -1
  137. pulumi_azure_native/webpubsub/v20240101preview/web_pub_sub_replica.py +1 -1
  138. pulumi_azure_native/webpubsub/v20240101preview/web_pub_sub_shared_private_link_resource.py +1 -1
  139. pulumi_azure_native/webpubsub/v20240301/web_pub_sub.py +1 -1
  140. pulumi_azure_native/webpubsub/v20240301/web_pub_sub_custom_certificate.py +1 -1
  141. pulumi_azure_native/webpubsub/v20240301/web_pub_sub_custom_domain.py +1 -1
  142. pulumi_azure_native/webpubsub/v20240301/web_pub_sub_hub.py +1 -1
  143. pulumi_azure_native/webpubsub/v20240301/web_pub_sub_private_endpoint_connection.py +1 -1
  144. pulumi_azure_native/webpubsub/v20240301/web_pub_sub_replica.py +1 -1
  145. pulumi_azure_native/webpubsub/v20240301/web_pub_sub_shared_private_link_resource.py +1 -1
  146. pulumi_azure_native/webpubsub/v20240401preview/web_pub_sub.py +1 -1
  147. pulumi_azure_native/webpubsub/v20240401preview/web_pub_sub_custom_certificate.py +1 -1
  148. pulumi_azure_native/webpubsub/v20240401preview/web_pub_sub_custom_domain.py +1 -1
  149. pulumi_azure_native/webpubsub/v20240401preview/web_pub_sub_hub.py +1 -1
  150. pulumi_azure_native/webpubsub/v20240401preview/web_pub_sub_private_endpoint_connection.py +1 -1
  151. pulumi_azure_native/webpubsub/v20240401preview/web_pub_sub_replica.py +1 -1
  152. pulumi_azure_native/webpubsub/v20240401preview/web_pub_sub_shared_private_link_resource.py +1 -1
  153. pulumi_azure_native/webpubsub/v20240801preview/web_pub_sub.py +1 -1
  154. pulumi_azure_native/webpubsub/v20240801preview/web_pub_sub_custom_certificate.py +1 -1
  155. pulumi_azure_native/webpubsub/v20240801preview/web_pub_sub_custom_domain.py +1 -1
  156. pulumi_azure_native/webpubsub/v20240801preview/web_pub_sub_hub.py +1 -1
  157. pulumi_azure_native/webpubsub/v20240801preview/web_pub_sub_private_endpoint_connection.py +1 -1
  158. pulumi_azure_native/webpubsub/v20240801preview/web_pub_sub_replica.py +1 -1
  159. pulumi_azure_native/webpubsub/v20240801preview/web_pub_sub_shared_private_link_resource.py +1 -1
  160. pulumi_azure_native/webpubsub/v20241001preview/__init__.py +25 -0
  161. pulumi_azure_native/webpubsub/v20241001preview/_enums.py +104 -0
  162. pulumi_azure_native/webpubsub/v20241001preview/_inputs.py +2053 -0
  163. pulumi_azure_native/webpubsub/v20241001preview/get_web_pub_sub.py +489 -0
  164. pulumi_azure_native/webpubsub/v20241001preview/get_web_pub_sub_custom_certificate.py +191 -0
  165. pulumi_azure_native/webpubsub/v20241001preview/get_web_pub_sub_custom_domain.py +177 -0
  166. pulumi_azure_native/webpubsub/v20241001preview/get_web_pub_sub_hub.py +149 -0
  167. pulumi_azure_native/webpubsub/v20241001preview/get_web_pub_sub_private_endpoint_connection.py +191 -0
  168. pulumi_azure_native/webpubsub/v20241001preview/get_web_pub_sub_replica.py +222 -0
  169. pulumi_azure_native/webpubsub/v20241001preview/get_web_pub_sub_shared_private_link_resource.py +219 -0
  170. pulumi_azure_native/webpubsub/v20241001preview/list_web_pub_sub_keys.py +128 -0
  171. pulumi_azure_native/webpubsub/v20241001preview/outputs.py +2099 -0
  172. pulumi_azure_native/webpubsub/v20241001preview/web_pub_sub.py +785 -0
  173. pulumi_azure_native/webpubsub/v20241001preview/web_pub_sub_custom_certificate.py +289 -0
  174. pulumi_azure_native/webpubsub/v20241001preview/web_pub_sub_custom_domain.py +260 -0
  175. pulumi_azure_native/webpubsub/v20241001preview/web_pub_sub_hub.py +222 -0
  176. pulumi_azure_native/webpubsub/v20241001preview/web_pub_sub_private_endpoint_connection.py +270 -0
  177. pulumi_azure_native/webpubsub/v20241001preview/web_pub_sub_replica.py +367 -0
  178. pulumi_azure_native/webpubsub/v20241001preview/web_pub_sub_shared_private_link_resource.py +328 -0
  179. pulumi_azure_native/webpubsub/web_pub_sub.py +3 -3
  180. pulumi_azure_native/webpubsub/web_pub_sub_custom_certificate.py +3 -3
  181. pulumi_azure_native/webpubsub/web_pub_sub_custom_domain.py +3 -3
  182. pulumi_azure_native/webpubsub/web_pub_sub_hub.py +3 -3
  183. pulumi_azure_native/webpubsub/web_pub_sub_private_endpoint_connection.py +3 -3
  184. pulumi_azure_native/webpubsub/web_pub_sub_replica.py +3 -3
  185. pulumi_azure_native/webpubsub/web_pub_sub_shared_private_link_resource.py +3 -3
  186. {pulumi_azure_native-2.74.0a1732531694.dist-info → pulumi_azure_native-2.75.0.dist-info}/METADATA +1 -1
  187. {pulumi_azure_native-2.74.0a1732531694.dist-info → pulumi_azure_native-2.75.0.dist-info}/RECORD +189 -148
  188. {pulumi_azure_native-2.74.0a1732531694.dist-info → pulumi_azure_native-2.75.0.dist-info}/WHEEL +0 -0
  189. {pulumi_azure_native-2.74.0a1732531694.dist-info → pulumi_azure_native-2.75.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,1976 @@
1
+ # coding=utf-8
2
+ # *** WARNING: this file was generated by pulumi-language-python. ***
3
+ # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+
5
+ import copy
6
+ import warnings
7
+ import sys
8
+ import pulumi
9
+ import pulumi.runtime
10
+ from typing import Any, Mapping, Optional, Sequence, Union, overload
11
+ if sys.version_info >= (3, 11):
12
+ from typing import NotRequired, TypedDict, TypeAlias
13
+ else:
14
+ from typing_extensions import NotRequired, TypedDict, TypeAlias
15
+ from ... import _utilities
16
+ from ._enums import *
17
+
18
+ __all__ = [
19
+ 'ApplicationFirewallSettingsArgs',
20
+ 'ApplicationFirewallSettingsArgsDict',
21
+ 'IPRuleArgs',
22
+ 'IPRuleArgsDict',
23
+ 'LiveTraceCategoryArgs',
24
+ 'LiveTraceCategoryArgsDict',
25
+ 'LiveTraceConfigurationArgs',
26
+ 'LiveTraceConfigurationArgsDict',
27
+ 'ManagedIdentitySettingsArgs',
28
+ 'ManagedIdentitySettingsArgsDict',
29
+ 'ManagedIdentityArgs',
30
+ 'ManagedIdentityArgsDict',
31
+ 'NetworkACLArgs',
32
+ 'NetworkACLArgsDict',
33
+ 'PrivateEndpointACLArgs',
34
+ 'PrivateEndpointACLArgsDict',
35
+ 'PrivateEndpointArgs',
36
+ 'PrivateEndpointArgsDict',
37
+ 'PrivateLinkServiceConnectionStateArgs',
38
+ 'PrivateLinkServiceConnectionStateArgsDict',
39
+ 'ResourceLogCategoryArgs',
40
+ 'ResourceLogCategoryArgsDict',
41
+ 'ResourceLogConfigurationArgs',
42
+ 'ResourceLogConfigurationArgsDict',
43
+ 'ResourceReferenceArgs',
44
+ 'ResourceReferenceArgsDict',
45
+ 'ResourceSkuArgs',
46
+ 'ResourceSkuArgsDict',
47
+ 'ServerlessSettingsArgs',
48
+ 'ServerlessSettingsArgsDict',
49
+ 'ServerlessUpstreamSettingsArgs',
50
+ 'ServerlessUpstreamSettingsArgsDict',
51
+ 'SignalRCorsSettingsArgs',
52
+ 'SignalRCorsSettingsArgsDict',
53
+ 'SignalRFeatureArgs',
54
+ 'SignalRFeatureArgsDict',
55
+ 'SignalRNetworkACLsArgs',
56
+ 'SignalRNetworkACLsArgsDict',
57
+ 'SignalRTlsSettingsArgs',
58
+ 'SignalRTlsSettingsArgsDict',
59
+ 'ThrottleByJwtCustomClaimRuleArgs',
60
+ 'ThrottleByJwtCustomClaimRuleArgsDict',
61
+ 'ThrottleByJwtSignatureRuleArgs',
62
+ 'ThrottleByJwtSignatureRuleArgsDict',
63
+ 'ThrottleByUserIdRuleArgs',
64
+ 'ThrottleByUserIdRuleArgsDict',
65
+ 'TrafficThrottleByJwtCustomClaimRuleArgs',
66
+ 'TrafficThrottleByJwtCustomClaimRuleArgsDict',
67
+ 'TrafficThrottleByJwtSignatureRuleArgs',
68
+ 'TrafficThrottleByJwtSignatureRuleArgsDict',
69
+ 'TrafficThrottleByUserIdRuleArgs',
70
+ 'TrafficThrottleByUserIdRuleArgsDict',
71
+ 'UpstreamAuthSettingsArgs',
72
+ 'UpstreamAuthSettingsArgsDict',
73
+ 'UpstreamTemplateArgs',
74
+ 'UpstreamTemplateArgsDict',
75
+ ]
76
+
77
+ MYPY = False
78
+
79
+ if not MYPY:
80
+ class ApplicationFirewallSettingsArgsDict(TypedDict):
81
+ """
82
+ Application firewall settings for the resource
83
+ """
84
+ client_connection_count_rules: NotRequired[pulumi.Input[Sequence[pulumi.Input[Union['ThrottleByJwtCustomClaimRuleArgsDict', 'ThrottleByJwtSignatureRuleArgsDict', 'ThrottleByUserIdRuleArgsDict']]]]]
85
+ """
86
+ Rules to control the client connection count
87
+ """
88
+ client_traffic_control_rules: NotRequired[pulumi.Input[Sequence[pulumi.Input[Union['TrafficThrottleByJwtCustomClaimRuleArgsDict', 'TrafficThrottleByJwtSignatureRuleArgsDict', 'TrafficThrottleByUserIdRuleArgsDict']]]]]
89
+ """
90
+ Rules to control the client traffic
91
+ """
92
+ elif False:
93
+ ApplicationFirewallSettingsArgsDict: TypeAlias = Mapping[str, Any]
94
+
95
+ @pulumi.input_type
96
+ class ApplicationFirewallSettingsArgs:
97
+ def __init__(__self__, *,
98
+ client_connection_count_rules: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ThrottleByJwtCustomClaimRuleArgs', 'ThrottleByJwtSignatureRuleArgs', 'ThrottleByUserIdRuleArgs']]]]] = None,
99
+ client_traffic_control_rules: Optional[pulumi.Input[Sequence[pulumi.Input[Union['TrafficThrottleByJwtCustomClaimRuleArgs', 'TrafficThrottleByJwtSignatureRuleArgs', 'TrafficThrottleByUserIdRuleArgs']]]]] = None):
100
+ """
101
+ Application firewall settings for the resource
102
+ :param pulumi.Input[Sequence[pulumi.Input[Union['ThrottleByJwtCustomClaimRuleArgs', 'ThrottleByJwtSignatureRuleArgs', 'ThrottleByUserIdRuleArgs']]]] client_connection_count_rules: Rules to control the client connection count
103
+ :param pulumi.Input[Sequence[pulumi.Input[Union['TrafficThrottleByJwtCustomClaimRuleArgs', 'TrafficThrottleByJwtSignatureRuleArgs', 'TrafficThrottleByUserIdRuleArgs']]]] client_traffic_control_rules: Rules to control the client traffic
104
+ """
105
+ if client_connection_count_rules is not None:
106
+ pulumi.set(__self__, "client_connection_count_rules", client_connection_count_rules)
107
+ if client_traffic_control_rules is not None:
108
+ pulumi.set(__self__, "client_traffic_control_rules", client_traffic_control_rules)
109
+
110
+ @property
111
+ @pulumi.getter(name="clientConnectionCountRules")
112
+ def client_connection_count_rules(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[Union['ThrottleByJwtCustomClaimRuleArgs', 'ThrottleByJwtSignatureRuleArgs', 'ThrottleByUserIdRuleArgs']]]]]:
113
+ """
114
+ Rules to control the client connection count
115
+ """
116
+ return pulumi.get(self, "client_connection_count_rules")
117
+
118
+ @client_connection_count_rules.setter
119
+ def client_connection_count_rules(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ThrottleByJwtCustomClaimRuleArgs', 'ThrottleByJwtSignatureRuleArgs', 'ThrottleByUserIdRuleArgs']]]]]):
120
+ pulumi.set(self, "client_connection_count_rules", value)
121
+
122
+ @property
123
+ @pulumi.getter(name="clientTrafficControlRules")
124
+ def client_traffic_control_rules(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[Union['TrafficThrottleByJwtCustomClaimRuleArgs', 'TrafficThrottleByJwtSignatureRuleArgs', 'TrafficThrottleByUserIdRuleArgs']]]]]:
125
+ """
126
+ Rules to control the client traffic
127
+ """
128
+ return pulumi.get(self, "client_traffic_control_rules")
129
+
130
+ @client_traffic_control_rules.setter
131
+ def client_traffic_control_rules(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[Union['TrafficThrottleByJwtCustomClaimRuleArgs', 'TrafficThrottleByJwtSignatureRuleArgs', 'TrafficThrottleByUserIdRuleArgs']]]]]):
132
+ pulumi.set(self, "client_traffic_control_rules", value)
133
+
134
+
135
+ if not MYPY:
136
+ class IPRuleArgsDict(TypedDict):
137
+ """
138
+ An IP rule
139
+ """
140
+ action: NotRequired[pulumi.Input[Union[str, 'ACLAction']]]
141
+ """
142
+ Azure Networking ACL Action.
143
+ """
144
+ value: NotRequired[pulumi.Input[str]]
145
+ """
146
+ An IP or CIDR or ServiceTag
147
+ """
148
+ elif False:
149
+ IPRuleArgsDict: TypeAlias = Mapping[str, Any]
150
+
151
+ @pulumi.input_type
152
+ class IPRuleArgs:
153
+ def __init__(__self__, *,
154
+ action: Optional[pulumi.Input[Union[str, 'ACLAction']]] = None,
155
+ value: Optional[pulumi.Input[str]] = None):
156
+ """
157
+ An IP rule
158
+ :param pulumi.Input[Union[str, 'ACLAction']] action: Azure Networking ACL Action.
159
+ :param pulumi.Input[str] value: An IP or CIDR or ServiceTag
160
+ """
161
+ if action is not None:
162
+ pulumi.set(__self__, "action", action)
163
+ if value is not None:
164
+ pulumi.set(__self__, "value", value)
165
+
166
+ @property
167
+ @pulumi.getter
168
+ def action(self) -> Optional[pulumi.Input[Union[str, 'ACLAction']]]:
169
+ """
170
+ Azure Networking ACL Action.
171
+ """
172
+ return pulumi.get(self, "action")
173
+
174
+ @action.setter
175
+ def action(self, value: Optional[pulumi.Input[Union[str, 'ACLAction']]]):
176
+ pulumi.set(self, "action", value)
177
+
178
+ @property
179
+ @pulumi.getter
180
+ def value(self) -> Optional[pulumi.Input[str]]:
181
+ """
182
+ An IP or CIDR or ServiceTag
183
+ """
184
+ return pulumi.get(self, "value")
185
+
186
+ @value.setter
187
+ def value(self, value: Optional[pulumi.Input[str]]):
188
+ pulumi.set(self, "value", value)
189
+
190
+
191
+ if not MYPY:
192
+ class LiveTraceCategoryArgsDict(TypedDict):
193
+ """
194
+ Live trace category configuration of a Microsoft.SignalRService resource.
195
+ """
196
+ enabled: NotRequired[pulumi.Input[str]]
197
+ """
198
+ Indicates whether or the live trace category is enabled.
199
+ Available values: true, false.
200
+ Case insensitive.
201
+ """
202
+ name: NotRequired[pulumi.Input[str]]
203
+ """
204
+ Gets or sets the live trace category's name.
205
+ Available values: ConnectivityLogs, MessagingLogs.
206
+ Case insensitive.
207
+ """
208
+ elif False:
209
+ LiveTraceCategoryArgsDict: TypeAlias = Mapping[str, Any]
210
+
211
+ @pulumi.input_type
212
+ class LiveTraceCategoryArgs:
213
+ def __init__(__self__, *,
214
+ enabled: Optional[pulumi.Input[str]] = None,
215
+ name: Optional[pulumi.Input[str]] = None):
216
+ """
217
+ Live trace category configuration of a Microsoft.SignalRService resource.
218
+ :param pulumi.Input[str] enabled: Indicates whether or the live trace category is enabled.
219
+ Available values: true, false.
220
+ Case insensitive.
221
+ :param pulumi.Input[str] name: Gets or sets the live trace category's name.
222
+ Available values: ConnectivityLogs, MessagingLogs.
223
+ Case insensitive.
224
+ """
225
+ if enabled is not None:
226
+ pulumi.set(__self__, "enabled", enabled)
227
+ if name is not None:
228
+ pulumi.set(__self__, "name", name)
229
+
230
+ @property
231
+ @pulumi.getter
232
+ def enabled(self) -> Optional[pulumi.Input[str]]:
233
+ """
234
+ Indicates whether or the live trace category is enabled.
235
+ Available values: true, false.
236
+ Case insensitive.
237
+ """
238
+ return pulumi.get(self, "enabled")
239
+
240
+ @enabled.setter
241
+ def enabled(self, value: Optional[pulumi.Input[str]]):
242
+ pulumi.set(self, "enabled", value)
243
+
244
+ @property
245
+ @pulumi.getter
246
+ def name(self) -> Optional[pulumi.Input[str]]:
247
+ """
248
+ Gets or sets the live trace category's name.
249
+ Available values: ConnectivityLogs, MessagingLogs.
250
+ Case insensitive.
251
+ """
252
+ return pulumi.get(self, "name")
253
+
254
+ @name.setter
255
+ def name(self, value: Optional[pulumi.Input[str]]):
256
+ pulumi.set(self, "name", value)
257
+
258
+
259
+ if not MYPY:
260
+ class LiveTraceConfigurationArgsDict(TypedDict):
261
+ """
262
+ Live trace configuration of a Microsoft.SignalRService resource.
263
+ """
264
+ categories: NotRequired[pulumi.Input[Sequence[pulumi.Input['LiveTraceCategoryArgsDict']]]]
265
+ """
266
+ Gets or sets the list of category configurations.
267
+ """
268
+ enabled: NotRequired[pulumi.Input[str]]
269
+ """
270
+ Indicates whether or not enable live trace.
271
+ When it's set to true, live trace client can connect to the service.
272
+ Otherwise, live trace client can't connect to the service, so that you are unable to receive any log, no matter what you configure in "categories".
273
+ Available values: true, false.
274
+ Case insensitive.
275
+ """
276
+ elif False:
277
+ LiveTraceConfigurationArgsDict: TypeAlias = Mapping[str, Any]
278
+
279
+ @pulumi.input_type
280
+ class LiveTraceConfigurationArgs:
281
+ def __init__(__self__, *,
282
+ categories: Optional[pulumi.Input[Sequence[pulumi.Input['LiveTraceCategoryArgs']]]] = None,
283
+ enabled: Optional[pulumi.Input[str]] = None):
284
+ """
285
+ Live trace configuration of a Microsoft.SignalRService resource.
286
+ :param pulumi.Input[Sequence[pulumi.Input['LiveTraceCategoryArgs']]] categories: Gets or sets the list of category configurations.
287
+ :param pulumi.Input[str] enabled: Indicates whether or not enable live trace.
288
+ When it's set to true, live trace client can connect to the service.
289
+ Otherwise, live trace client can't connect to the service, so that you are unable to receive any log, no matter what you configure in "categories".
290
+ Available values: true, false.
291
+ Case insensitive.
292
+ """
293
+ if categories is not None:
294
+ pulumi.set(__self__, "categories", categories)
295
+ if enabled is None:
296
+ enabled = 'false'
297
+ if enabled is not None:
298
+ pulumi.set(__self__, "enabled", enabled)
299
+
300
+ @property
301
+ @pulumi.getter
302
+ def categories(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['LiveTraceCategoryArgs']]]]:
303
+ """
304
+ Gets or sets the list of category configurations.
305
+ """
306
+ return pulumi.get(self, "categories")
307
+
308
+ @categories.setter
309
+ def categories(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['LiveTraceCategoryArgs']]]]):
310
+ pulumi.set(self, "categories", value)
311
+
312
+ @property
313
+ @pulumi.getter
314
+ def enabled(self) -> Optional[pulumi.Input[str]]:
315
+ """
316
+ Indicates whether or not enable live trace.
317
+ When it's set to true, live trace client can connect to the service.
318
+ Otherwise, live trace client can't connect to the service, so that you are unable to receive any log, no matter what you configure in "categories".
319
+ Available values: true, false.
320
+ Case insensitive.
321
+ """
322
+ return pulumi.get(self, "enabled")
323
+
324
+ @enabled.setter
325
+ def enabled(self, value: Optional[pulumi.Input[str]]):
326
+ pulumi.set(self, "enabled", value)
327
+
328
+
329
+ if not MYPY:
330
+ class ManagedIdentitySettingsArgsDict(TypedDict):
331
+ """
332
+ Managed identity settings for upstream.
333
+ """
334
+ resource: NotRequired[pulumi.Input[str]]
335
+ """
336
+ The Resource indicating the App ID URI of the target resource.
337
+ It also appears in the aud (audience) claim of the issued token.
338
+ """
339
+ elif False:
340
+ ManagedIdentitySettingsArgsDict: TypeAlias = Mapping[str, Any]
341
+
342
+ @pulumi.input_type
343
+ class ManagedIdentitySettingsArgs:
344
+ def __init__(__self__, *,
345
+ resource: Optional[pulumi.Input[str]] = None):
346
+ """
347
+ Managed identity settings for upstream.
348
+ :param pulumi.Input[str] resource: The Resource indicating the App ID URI of the target resource.
349
+ It also appears in the aud (audience) claim of the issued token.
350
+ """
351
+ if resource is not None:
352
+ pulumi.set(__self__, "resource", resource)
353
+
354
+ @property
355
+ @pulumi.getter
356
+ def resource(self) -> Optional[pulumi.Input[str]]:
357
+ """
358
+ The Resource indicating the App ID URI of the target resource.
359
+ It also appears in the aud (audience) claim of the issued token.
360
+ """
361
+ return pulumi.get(self, "resource")
362
+
363
+ @resource.setter
364
+ def resource(self, value: Optional[pulumi.Input[str]]):
365
+ pulumi.set(self, "resource", value)
366
+
367
+
368
+ if not MYPY:
369
+ class ManagedIdentityArgsDict(TypedDict):
370
+ """
371
+ A class represent managed identities used for request and response
372
+ """
373
+ type: NotRequired[pulumi.Input[Union[str, 'ManagedIdentityType']]]
374
+ """
375
+ Represents the identity type: systemAssigned, userAssigned, None
376
+ """
377
+ user_assigned_identities: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
378
+ """
379
+ Get or set the user assigned identities
380
+ """
381
+ elif False:
382
+ ManagedIdentityArgsDict: TypeAlias = Mapping[str, Any]
383
+
384
+ @pulumi.input_type
385
+ class ManagedIdentityArgs:
386
+ def __init__(__self__, *,
387
+ type: Optional[pulumi.Input[Union[str, 'ManagedIdentityType']]] = None,
388
+ user_assigned_identities: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
389
+ """
390
+ A class represent managed identities used for request and response
391
+ :param pulumi.Input[Union[str, 'ManagedIdentityType']] type: Represents the identity type: systemAssigned, userAssigned, None
392
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] user_assigned_identities: Get or set the user assigned identities
393
+ """
394
+ if type is not None:
395
+ pulumi.set(__self__, "type", type)
396
+ if user_assigned_identities is not None:
397
+ pulumi.set(__self__, "user_assigned_identities", user_assigned_identities)
398
+
399
+ @property
400
+ @pulumi.getter
401
+ def type(self) -> Optional[pulumi.Input[Union[str, 'ManagedIdentityType']]]:
402
+ """
403
+ Represents the identity type: systemAssigned, userAssigned, None
404
+ """
405
+ return pulumi.get(self, "type")
406
+
407
+ @type.setter
408
+ def type(self, value: Optional[pulumi.Input[Union[str, 'ManagedIdentityType']]]):
409
+ pulumi.set(self, "type", value)
410
+
411
+ @property
412
+ @pulumi.getter(name="userAssignedIdentities")
413
+ def user_assigned_identities(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
414
+ """
415
+ Get or set the user assigned identities
416
+ """
417
+ return pulumi.get(self, "user_assigned_identities")
418
+
419
+ @user_assigned_identities.setter
420
+ def user_assigned_identities(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
421
+ pulumi.set(self, "user_assigned_identities", value)
422
+
423
+
424
+ if not MYPY:
425
+ class NetworkACLArgsDict(TypedDict):
426
+ """
427
+ Network ACL
428
+ """
429
+ allow: NotRequired[pulumi.Input[Sequence[pulumi.Input[Union[str, 'SignalRRequestType']]]]]
430
+ """
431
+ Allowed request types. The value can be one or more of: ClientConnection, ServerConnection, RESTAPI.
432
+ """
433
+ deny: NotRequired[pulumi.Input[Sequence[pulumi.Input[Union[str, 'SignalRRequestType']]]]]
434
+ """
435
+ Denied request types. The value can be one or more of: ClientConnection, ServerConnection, RESTAPI.
436
+ """
437
+ elif False:
438
+ NetworkACLArgsDict: TypeAlias = Mapping[str, Any]
439
+
440
+ @pulumi.input_type
441
+ class NetworkACLArgs:
442
+ def __init__(__self__, *,
443
+ allow: Optional[pulumi.Input[Sequence[pulumi.Input[Union[str, 'SignalRRequestType']]]]] = None,
444
+ deny: Optional[pulumi.Input[Sequence[pulumi.Input[Union[str, 'SignalRRequestType']]]]] = None):
445
+ """
446
+ Network ACL
447
+ :param pulumi.Input[Sequence[pulumi.Input[Union[str, 'SignalRRequestType']]]] allow: Allowed request types. The value can be one or more of: ClientConnection, ServerConnection, RESTAPI.
448
+ :param pulumi.Input[Sequence[pulumi.Input[Union[str, 'SignalRRequestType']]]] deny: Denied request types. The value can be one or more of: ClientConnection, ServerConnection, RESTAPI.
449
+ """
450
+ if allow is not None:
451
+ pulumi.set(__self__, "allow", allow)
452
+ if deny is not None:
453
+ pulumi.set(__self__, "deny", deny)
454
+
455
+ @property
456
+ @pulumi.getter
457
+ def allow(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[Union[str, 'SignalRRequestType']]]]]:
458
+ """
459
+ Allowed request types. The value can be one or more of: ClientConnection, ServerConnection, RESTAPI.
460
+ """
461
+ return pulumi.get(self, "allow")
462
+
463
+ @allow.setter
464
+ def allow(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[Union[str, 'SignalRRequestType']]]]]):
465
+ pulumi.set(self, "allow", value)
466
+
467
+ @property
468
+ @pulumi.getter
469
+ def deny(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[Union[str, 'SignalRRequestType']]]]]:
470
+ """
471
+ Denied request types. The value can be one or more of: ClientConnection, ServerConnection, RESTAPI.
472
+ """
473
+ return pulumi.get(self, "deny")
474
+
475
+ @deny.setter
476
+ def deny(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[Union[str, 'SignalRRequestType']]]]]):
477
+ pulumi.set(self, "deny", value)
478
+
479
+
480
+ if not MYPY:
481
+ class PrivateEndpointACLArgsDict(TypedDict):
482
+ """
483
+ ACL for a private endpoint
484
+ """
485
+ name: pulumi.Input[str]
486
+ """
487
+ Name of the private endpoint connection
488
+ """
489
+ allow: NotRequired[pulumi.Input[Sequence[pulumi.Input[Union[str, 'SignalRRequestType']]]]]
490
+ """
491
+ Allowed request types. The value can be one or more of: ClientConnection, ServerConnection, RESTAPI.
492
+ """
493
+ deny: NotRequired[pulumi.Input[Sequence[pulumi.Input[Union[str, 'SignalRRequestType']]]]]
494
+ """
495
+ Denied request types. The value can be one or more of: ClientConnection, ServerConnection, RESTAPI.
496
+ """
497
+ elif False:
498
+ PrivateEndpointACLArgsDict: TypeAlias = Mapping[str, Any]
499
+
500
+ @pulumi.input_type
501
+ class PrivateEndpointACLArgs:
502
+ def __init__(__self__, *,
503
+ name: pulumi.Input[str],
504
+ allow: Optional[pulumi.Input[Sequence[pulumi.Input[Union[str, 'SignalRRequestType']]]]] = None,
505
+ deny: Optional[pulumi.Input[Sequence[pulumi.Input[Union[str, 'SignalRRequestType']]]]] = None):
506
+ """
507
+ ACL for a private endpoint
508
+ :param pulumi.Input[str] name: Name of the private endpoint connection
509
+ :param pulumi.Input[Sequence[pulumi.Input[Union[str, 'SignalRRequestType']]]] allow: Allowed request types. The value can be one or more of: ClientConnection, ServerConnection, RESTAPI.
510
+ :param pulumi.Input[Sequence[pulumi.Input[Union[str, 'SignalRRequestType']]]] deny: Denied request types. The value can be one or more of: ClientConnection, ServerConnection, RESTAPI.
511
+ """
512
+ pulumi.set(__self__, "name", name)
513
+ if allow is not None:
514
+ pulumi.set(__self__, "allow", allow)
515
+ if deny is not None:
516
+ pulumi.set(__self__, "deny", deny)
517
+
518
+ @property
519
+ @pulumi.getter
520
+ def name(self) -> pulumi.Input[str]:
521
+ """
522
+ Name of the private endpoint connection
523
+ """
524
+ return pulumi.get(self, "name")
525
+
526
+ @name.setter
527
+ def name(self, value: pulumi.Input[str]):
528
+ pulumi.set(self, "name", value)
529
+
530
+ @property
531
+ @pulumi.getter
532
+ def allow(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[Union[str, 'SignalRRequestType']]]]]:
533
+ """
534
+ Allowed request types. The value can be one or more of: ClientConnection, ServerConnection, RESTAPI.
535
+ """
536
+ return pulumi.get(self, "allow")
537
+
538
+ @allow.setter
539
+ def allow(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[Union[str, 'SignalRRequestType']]]]]):
540
+ pulumi.set(self, "allow", value)
541
+
542
+ @property
543
+ @pulumi.getter
544
+ def deny(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[Union[str, 'SignalRRequestType']]]]]:
545
+ """
546
+ Denied request types. The value can be one or more of: ClientConnection, ServerConnection, RESTAPI.
547
+ """
548
+ return pulumi.get(self, "deny")
549
+
550
+ @deny.setter
551
+ def deny(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[Union[str, 'SignalRRequestType']]]]]):
552
+ pulumi.set(self, "deny", value)
553
+
554
+
555
+ if not MYPY:
556
+ class PrivateEndpointArgsDict(TypedDict):
557
+ """
558
+ Private endpoint
559
+ """
560
+ id: NotRequired[pulumi.Input[str]]
561
+ """
562
+ Full qualified Id of the private endpoint
563
+ """
564
+ elif False:
565
+ PrivateEndpointArgsDict: TypeAlias = Mapping[str, Any]
566
+
567
+ @pulumi.input_type
568
+ class PrivateEndpointArgs:
569
+ def __init__(__self__, *,
570
+ id: Optional[pulumi.Input[str]] = None):
571
+ """
572
+ Private endpoint
573
+ :param pulumi.Input[str] id: Full qualified Id of the private endpoint
574
+ """
575
+ if id is not None:
576
+ pulumi.set(__self__, "id", id)
577
+
578
+ @property
579
+ @pulumi.getter
580
+ def id(self) -> Optional[pulumi.Input[str]]:
581
+ """
582
+ Full qualified Id of the private endpoint
583
+ """
584
+ return pulumi.get(self, "id")
585
+
586
+ @id.setter
587
+ def id(self, value: Optional[pulumi.Input[str]]):
588
+ pulumi.set(self, "id", value)
589
+
590
+
591
+ if not MYPY:
592
+ class PrivateLinkServiceConnectionStateArgsDict(TypedDict):
593
+ """
594
+ Connection state of the private endpoint connection
595
+ """
596
+ actions_required: NotRequired[pulumi.Input[str]]
597
+ """
598
+ A message indicating if changes on the service provider require any updates on the consumer.
599
+ """
600
+ description: NotRequired[pulumi.Input[str]]
601
+ """
602
+ The reason for approval/rejection of the connection.
603
+ """
604
+ status: NotRequired[pulumi.Input[Union[str, 'PrivateLinkServiceConnectionStatus']]]
605
+ """
606
+ Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service.
607
+ """
608
+ elif False:
609
+ PrivateLinkServiceConnectionStateArgsDict: TypeAlias = Mapping[str, Any]
610
+
611
+ @pulumi.input_type
612
+ class PrivateLinkServiceConnectionStateArgs:
613
+ def __init__(__self__, *,
614
+ actions_required: Optional[pulumi.Input[str]] = None,
615
+ description: Optional[pulumi.Input[str]] = None,
616
+ status: Optional[pulumi.Input[Union[str, 'PrivateLinkServiceConnectionStatus']]] = None):
617
+ """
618
+ Connection state of the private endpoint connection
619
+ :param pulumi.Input[str] actions_required: A message indicating if changes on the service provider require any updates on the consumer.
620
+ :param pulumi.Input[str] description: The reason for approval/rejection of the connection.
621
+ :param pulumi.Input[Union[str, 'PrivateLinkServiceConnectionStatus']] status: Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service.
622
+ """
623
+ if actions_required is not None:
624
+ pulumi.set(__self__, "actions_required", actions_required)
625
+ if description is not None:
626
+ pulumi.set(__self__, "description", description)
627
+ if status is not None:
628
+ pulumi.set(__self__, "status", status)
629
+
630
+ @property
631
+ @pulumi.getter(name="actionsRequired")
632
+ def actions_required(self) -> Optional[pulumi.Input[str]]:
633
+ """
634
+ A message indicating if changes on the service provider require any updates on the consumer.
635
+ """
636
+ return pulumi.get(self, "actions_required")
637
+
638
+ @actions_required.setter
639
+ def actions_required(self, value: Optional[pulumi.Input[str]]):
640
+ pulumi.set(self, "actions_required", value)
641
+
642
+ @property
643
+ @pulumi.getter
644
+ def description(self) -> Optional[pulumi.Input[str]]:
645
+ """
646
+ The reason for approval/rejection of the connection.
647
+ """
648
+ return pulumi.get(self, "description")
649
+
650
+ @description.setter
651
+ def description(self, value: Optional[pulumi.Input[str]]):
652
+ pulumi.set(self, "description", value)
653
+
654
+ @property
655
+ @pulumi.getter
656
+ def status(self) -> Optional[pulumi.Input[Union[str, 'PrivateLinkServiceConnectionStatus']]]:
657
+ """
658
+ Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service.
659
+ """
660
+ return pulumi.get(self, "status")
661
+
662
+ @status.setter
663
+ def status(self, value: Optional[pulumi.Input[Union[str, 'PrivateLinkServiceConnectionStatus']]]):
664
+ pulumi.set(self, "status", value)
665
+
666
+
667
+ if not MYPY:
668
+ class ResourceLogCategoryArgsDict(TypedDict):
669
+ """
670
+ Resource log category configuration of a Microsoft.SignalRService resource.
671
+ """
672
+ enabled: NotRequired[pulumi.Input[str]]
673
+ """
674
+ Indicates whether or the resource log category is enabled.
675
+ Available values: true, false.
676
+ Case insensitive.
677
+ """
678
+ name: NotRequired[pulumi.Input[str]]
679
+ """
680
+ Gets or sets the resource log category's name.
681
+ Available values: ConnectivityLogs, MessagingLogs.
682
+ Case insensitive.
683
+ """
684
+ elif False:
685
+ ResourceLogCategoryArgsDict: TypeAlias = Mapping[str, Any]
686
+
687
+ @pulumi.input_type
688
+ class ResourceLogCategoryArgs:
689
+ def __init__(__self__, *,
690
+ enabled: Optional[pulumi.Input[str]] = None,
691
+ name: Optional[pulumi.Input[str]] = None):
692
+ """
693
+ Resource log category configuration of a Microsoft.SignalRService resource.
694
+ :param pulumi.Input[str] enabled: Indicates whether or the resource log category is enabled.
695
+ Available values: true, false.
696
+ Case insensitive.
697
+ :param pulumi.Input[str] name: Gets or sets the resource log category's name.
698
+ Available values: ConnectivityLogs, MessagingLogs.
699
+ Case insensitive.
700
+ """
701
+ if enabled is not None:
702
+ pulumi.set(__self__, "enabled", enabled)
703
+ if name is not None:
704
+ pulumi.set(__self__, "name", name)
705
+
706
+ @property
707
+ @pulumi.getter
708
+ def enabled(self) -> Optional[pulumi.Input[str]]:
709
+ """
710
+ Indicates whether or the resource log category is enabled.
711
+ Available values: true, false.
712
+ Case insensitive.
713
+ """
714
+ return pulumi.get(self, "enabled")
715
+
716
+ @enabled.setter
717
+ def enabled(self, value: Optional[pulumi.Input[str]]):
718
+ pulumi.set(self, "enabled", value)
719
+
720
+ @property
721
+ @pulumi.getter
722
+ def name(self) -> Optional[pulumi.Input[str]]:
723
+ """
724
+ Gets or sets the resource log category's name.
725
+ Available values: ConnectivityLogs, MessagingLogs.
726
+ Case insensitive.
727
+ """
728
+ return pulumi.get(self, "name")
729
+
730
+ @name.setter
731
+ def name(self, value: Optional[pulumi.Input[str]]):
732
+ pulumi.set(self, "name", value)
733
+
734
+
735
+ if not MYPY:
736
+ class ResourceLogConfigurationArgsDict(TypedDict):
737
+ """
738
+ Resource log configuration of a Microsoft.SignalRService resource.
739
+ """
740
+ categories: NotRequired[pulumi.Input[Sequence[pulumi.Input['ResourceLogCategoryArgsDict']]]]
741
+ """
742
+ Gets or sets the list of category configurations.
743
+ """
744
+ elif False:
745
+ ResourceLogConfigurationArgsDict: TypeAlias = Mapping[str, Any]
746
+
747
+ @pulumi.input_type
748
+ class ResourceLogConfigurationArgs:
749
+ def __init__(__self__, *,
750
+ categories: Optional[pulumi.Input[Sequence[pulumi.Input['ResourceLogCategoryArgs']]]] = None):
751
+ """
752
+ Resource log configuration of a Microsoft.SignalRService resource.
753
+ :param pulumi.Input[Sequence[pulumi.Input['ResourceLogCategoryArgs']]] categories: Gets or sets the list of category configurations.
754
+ """
755
+ if categories is not None:
756
+ pulumi.set(__self__, "categories", categories)
757
+
758
+ @property
759
+ @pulumi.getter
760
+ def categories(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ResourceLogCategoryArgs']]]]:
761
+ """
762
+ Gets or sets the list of category configurations.
763
+ """
764
+ return pulumi.get(self, "categories")
765
+
766
+ @categories.setter
767
+ def categories(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ResourceLogCategoryArgs']]]]):
768
+ pulumi.set(self, "categories", value)
769
+
770
+
771
+ if not MYPY:
772
+ class ResourceReferenceArgsDict(TypedDict):
773
+ """
774
+ Reference to a resource.
775
+ """
776
+ id: NotRequired[pulumi.Input[str]]
777
+ """
778
+ Resource ID.
779
+ """
780
+ elif False:
781
+ ResourceReferenceArgsDict: TypeAlias = Mapping[str, Any]
782
+
783
+ @pulumi.input_type
784
+ class ResourceReferenceArgs:
785
+ def __init__(__self__, *,
786
+ id: Optional[pulumi.Input[str]] = None):
787
+ """
788
+ Reference to a resource.
789
+ :param pulumi.Input[str] id: Resource ID.
790
+ """
791
+ if id is not None:
792
+ pulumi.set(__self__, "id", id)
793
+
794
+ @property
795
+ @pulumi.getter
796
+ def id(self) -> Optional[pulumi.Input[str]]:
797
+ """
798
+ Resource ID.
799
+ """
800
+ return pulumi.get(self, "id")
801
+
802
+ @id.setter
803
+ def id(self, value: Optional[pulumi.Input[str]]):
804
+ pulumi.set(self, "id", value)
805
+
806
+
807
+ if not MYPY:
808
+ class ResourceSkuArgsDict(TypedDict):
809
+ """
810
+ The billing information of the resource.
811
+ """
812
+ name: pulumi.Input[str]
813
+ """
814
+ The name of the SKU. Required.
815
+
816
+ Allowed values: Standard_S1, Free_F1, Premium_P1, Premium_P2
817
+ """
818
+ capacity: NotRequired[pulumi.Input[int]]
819
+ """
820
+ Optional, integer. The unit count of the resource.
821
+ 1 for Free_F1/Standard_S1/Premium_P1, 100 for Premium_P2 by default.
822
+
823
+ If present, following values are allowed:
824
+ Free_F1: 1;
825
+ Standard_S1: 1,2,3,4,5,6,7,8,9,10,20,30,40,50,60,70,80,90,100;
826
+ Premium_P1: 1,2,3,4,5,6,7,8,9,10,20,30,40,50,60,70,80,90,100;
827
+ Premium_P2: 100,200,300,400,500,600,700,800,900,1000;
828
+ """
829
+ tier: NotRequired[pulumi.Input[Union[str, 'SignalRSkuTier']]]
830
+ """
831
+ Optional tier of this particular SKU. 'Standard' or 'Free'.
832
+
833
+ `Basic` is deprecated, use `Standard` instead.
834
+ """
835
+ elif False:
836
+ ResourceSkuArgsDict: TypeAlias = Mapping[str, Any]
837
+
838
+ @pulumi.input_type
839
+ class ResourceSkuArgs:
840
+ def __init__(__self__, *,
841
+ name: pulumi.Input[str],
842
+ capacity: Optional[pulumi.Input[int]] = None,
843
+ tier: Optional[pulumi.Input[Union[str, 'SignalRSkuTier']]] = None):
844
+ """
845
+ The billing information of the resource.
846
+ :param pulumi.Input[str] name: The name of the SKU. Required.
847
+
848
+ Allowed values: Standard_S1, Free_F1, Premium_P1, Premium_P2
849
+ :param pulumi.Input[int] capacity: Optional, integer. The unit count of the resource.
850
+ 1 for Free_F1/Standard_S1/Premium_P1, 100 for Premium_P2 by default.
851
+
852
+ If present, following values are allowed:
853
+ Free_F1: 1;
854
+ Standard_S1: 1,2,3,4,5,6,7,8,9,10,20,30,40,50,60,70,80,90,100;
855
+ Premium_P1: 1,2,3,4,5,6,7,8,9,10,20,30,40,50,60,70,80,90,100;
856
+ Premium_P2: 100,200,300,400,500,600,700,800,900,1000;
857
+ :param pulumi.Input[Union[str, 'SignalRSkuTier']] tier: Optional tier of this particular SKU. 'Standard' or 'Free'.
858
+
859
+ `Basic` is deprecated, use `Standard` instead.
860
+ """
861
+ pulumi.set(__self__, "name", name)
862
+ if capacity is not None:
863
+ pulumi.set(__self__, "capacity", capacity)
864
+ if tier is not None:
865
+ pulumi.set(__self__, "tier", tier)
866
+
867
+ @property
868
+ @pulumi.getter
869
+ def name(self) -> pulumi.Input[str]:
870
+ """
871
+ The name of the SKU. Required.
872
+
873
+ Allowed values: Standard_S1, Free_F1, Premium_P1, Premium_P2
874
+ """
875
+ return pulumi.get(self, "name")
876
+
877
+ @name.setter
878
+ def name(self, value: pulumi.Input[str]):
879
+ pulumi.set(self, "name", value)
880
+
881
+ @property
882
+ @pulumi.getter
883
+ def capacity(self) -> Optional[pulumi.Input[int]]:
884
+ """
885
+ Optional, integer. The unit count of the resource.
886
+ 1 for Free_F1/Standard_S1/Premium_P1, 100 for Premium_P2 by default.
887
+
888
+ If present, following values are allowed:
889
+ Free_F1: 1;
890
+ Standard_S1: 1,2,3,4,5,6,7,8,9,10,20,30,40,50,60,70,80,90,100;
891
+ Premium_P1: 1,2,3,4,5,6,7,8,9,10,20,30,40,50,60,70,80,90,100;
892
+ Premium_P2: 100,200,300,400,500,600,700,800,900,1000;
893
+ """
894
+ return pulumi.get(self, "capacity")
895
+
896
+ @capacity.setter
897
+ def capacity(self, value: Optional[pulumi.Input[int]]):
898
+ pulumi.set(self, "capacity", value)
899
+
900
+ @property
901
+ @pulumi.getter
902
+ def tier(self) -> Optional[pulumi.Input[Union[str, 'SignalRSkuTier']]]:
903
+ """
904
+ Optional tier of this particular SKU. 'Standard' or 'Free'.
905
+
906
+ `Basic` is deprecated, use `Standard` instead.
907
+ """
908
+ return pulumi.get(self, "tier")
909
+
910
+ @tier.setter
911
+ def tier(self, value: Optional[pulumi.Input[Union[str, 'SignalRSkuTier']]]):
912
+ pulumi.set(self, "tier", value)
913
+
914
+
915
+ if not MYPY:
916
+ class ServerlessSettingsArgsDict(TypedDict):
917
+ """
918
+ Serverless settings.
919
+ """
920
+ connection_timeout_in_seconds: NotRequired[pulumi.Input[int]]
921
+ """
922
+ Gets or sets Client Connection Timeout. Optional to be set.
923
+ Value in seconds.
924
+ Default value is 30 seconds.
925
+ Customer should set the timeout to a shorter period if messages are expected to be sent in shorter intervals,
926
+ and want the client to disconnect more quickly after the last message is sent.
927
+ You can set the timeout to a longer period if messages are expected to be sent in longer intervals,
928
+ and they want to keep the same client connection alive during this session.
929
+ The service considers the client disconnected if it hasn't received a message (including keep-alive) in this interval.
930
+ """
931
+ keep_alive_interval_in_seconds: NotRequired[pulumi.Input[int]]
932
+ """
933
+ Gets or sets the Keep-Alive Interval. Optional to set.
934
+ Value is in seconds.
935
+ The default value is 15 seconds.
936
+ Customers should set this value to a shorter period if they want the service to send keep-alive messages more frequently,
937
+ ensuring timely checks of the connection status.
938
+ Conversely, customers can set this value to a longer period if they want the service to send keep-alive messages less frequently,
939
+ reducing network traffic, but note that it may take longer to detect a disconnection.
940
+ This interval ensures that the connection is maintained by sending periodic keep-alive messages to the client.
941
+ """
942
+ elif False:
943
+ ServerlessSettingsArgsDict: TypeAlias = Mapping[str, Any]
944
+
945
+ @pulumi.input_type
946
+ class ServerlessSettingsArgs:
947
+ def __init__(__self__, *,
948
+ connection_timeout_in_seconds: Optional[pulumi.Input[int]] = None,
949
+ keep_alive_interval_in_seconds: Optional[pulumi.Input[int]] = None):
950
+ """
951
+ Serverless settings.
952
+ :param pulumi.Input[int] connection_timeout_in_seconds: Gets or sets Client Connection Timeout. Optional to be set.
953
+ Value in seconds.
954
+ Default value is 30 seconds.
955
+ Customer should set the timeout to a shorter period if messages are expected to be sent in shorter intervals,
956
+ and want the client to disconnect more quickly after the last message is sent.
957
+ You can set the timeout to a longer period if messages are expected to be sent in longer intervals,
958
+ and they want to keep the same client connection alive during this session.
959
+ The service considers the client disconnected if it hasn't received a message (including keep-alive) in this interval.
960
+ :param pulumi.Input[int] keep_alive_interval_in_seconds: Gets or sets the Keep-Alive Interval. Optional to set.
961
+ Value is in seconds.
962
+ The default value is 15 seconds.
963
+ Customers should set this value to a shorter period if they want the service to send keep-alive messages more frequently,
964
+ ensuring timely checks of the connection status.
965
+ Conversely, customers can set this value to a longer period if they want the service to send keep-alive messages less frequently,
966
+ reducing network traffic, but note that it may take longer to detect a disconnection.
967
+ This interval ensures that the connection is maintained by sending periodic keep-alive messages to the client.
968
+ """
969
+ if connection_timeout_in_seconds is None:
970
+ connection_timeout_in_seconds = 30
971
+ if connection_timeout_in_seconds is not None:
972
+ pulumi.set(__self__, "connection_timeout_in_seconds", connection_timeout_in_seconds)
973
+ if keep_alive_interval_in_seconds is not None:
974
+ pulumi.set(__self__, "keep_alive_interval_in_seconds", keep_alive_interval_in_seconds)
975
+
976
+ @property
977
+ @pulumi.getter(name="connectionTimeoutInSeconds")
978
+ def connection_timeout_in_seconds(self) -> Optional[pulumi.Input[int]]:
979
+ """
980
+ Gets or sets Client Connection Timeout. Optional to be set.
981
+ Value in seconds.
982
+ Default value is 30 seconds.
983
+ Customer should set the timeout to a shorter period if messages are expected to be sent in shorter intervals,
984
+ and want the client to disconnect more quickly after the last message is sent.
985
+ You can set the timeout to a longer period if messages are expected to be sent in longer intervals,
986
+ and they want to keep the same client connection alive during this session.
987
+ The service considers the client disconnected if it hasn't received a message (including keep-alive) in this interval.
988
+ """
989
+ return pulumi.get(self, "connection_timeout_in_seconds")
990
+
991
+ @connection_timeout_in_seconds.setter
992
+ def connection_timeout_in_seconds(self, value: Optional[pulumi.Input[int]]):
993
+ pulumi.set(self, "connection_timeout_in_seconds", value)
994
+
995
+ @property
996
+ @pulumi.getter(name="keepAliveIntervalInSeconds")
997
+ def keep_alive_interval_in_seconds(self) -> Optional[pulumi.Input[int]]:
998
+ """
999
+ Gets or sets the Keep-Alive Interval. Optional to set.
1000
+ Value is in seconds.
1001
+ The default value is 15 seconds.
1002
+ Customers should set this value to a shorter period if they want the service to send keep-alive messages more frequently,
1003
+ ensuring timely checks of the connection status.
1004
+ Conversely, customers can set this value to a longer period if they want the service to send keep-alive messages less frequently,
1005
+ reducing network traffic, but note that it may take longer to detect a disconnection.
1006
+ This interval ensures that the connection is maintained by sending periodic keep-alive messages to the client.
1007
+ """
1008
+ return pulumi.get(self, "keep_alive_interval_in_seconds")
1009
+
1010
+ @keep_alive_interval_in_seconds.setter
1011
+ def keep_alive_interval_in_seconds(self, value: Optional[pulumi.Input[int]]):
1012
+ pulumi.set(self, "keep_alive_interval_in_seconds", value)
1013
+
1014
+
1015
+ if not MYPY:
1016
+ class ServerlessUpstreamSettingsArgsDict(TypedDict):
1017
+ """
1018
+ The settings for the Upstream when the service is in server-less mode.
1019
+ """
1020
+ templates: NotRequired[pulumi.Input[Sequence[pulumi.Input['UpstreamTemplateArgsDict']]]]
1021
+ """
1022
+ Gets or sets the list of Upstream URL templates. Order matters, and the first matching template takes effects.
1023
+ """
1024
+ elif False:
1025
+ ServerlessUpstreamSettingsArgsDict: TypeAlias = Mapping[str, Any]
1026
+
1027
+ @pulumi.input_type
1028
+ class ServerlessUpstreamSettingsArgs:
1029
+ def __init__(__self__, *,
1030
+ templates: Optional[pulumi.Input[Sequence[pulumi.Input['UpstreamTemplateArgs']]]] = None):
1031
+ """
1032
+ The settings for the Upstream when the service is in server-less mode.
1033
+ :param pulumi.Input[Sequence[pulumi.Input['UpstreamTemplateArgs']]] templates: Gets or sets the list of Upstream URL templates. Order matters, and the first matching template takes effects.
1034
+ """
1035
+ if templates is not None:
1036
+ pulumi.set(__self__, "templates", templates)
1037
+
1038
+ @property
1039
+ @pulumi.getter
1040
+ def templates(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['UpstreamTemplateArgs']]]]:
1041
+ """
1042
+ Gets or sets the list of Upstream URL templates. Order matters, and the first matching template takes effects.
1043
+ """
1044
+ return pulumi.get(self, "templates")
1045
+
1046
+ @templates.setter
1047
+ def templates(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['UpstreamTemplateArgs']]]]):
1048
+ pulumi.set(self, "templates", value)
1049
+
1050
+
1051
+ if not MYPY:
1052
+ class SignalRCorsSettingsArgsDict(TypedDict):
1053
+ """
1054
+ Cross-Origin Resource Sharing (CORS) settings.
1055
+ """
1056
+ allowed_origins: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
1057
+ """
1058
+ Gets or sets the list of origins that should be allowed to make cross-origin calls (for example: http://example.com:12345). Use "*" to allow all. If omitted, allow all by default.
1059
+ """
1060
+ elif False:
1061
+ SignalRCorsSettingsArgsDict: TypeAlias = Mapping[str, Any]
1062
+
1063
+ @pulumi.input_type
1064
+ class SignalRCorsSettingsArgs:
1065
+ def __init__(__self__, *,
1066
+ allowed_origins: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
1067
+ """
1068
+ Cross-Origin Resource Sharing (CORS) settings.
1069
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_origins: Gets or sets the list of origins that should be allowed to make cross-origin calls (for example: http://example.com:12345). Use "*" to allow all. If omitted, allow all by default.
1070
+ """
1071
+ if allowed_origins is not None:
1072
+ pulumi.set(__self__, "allowed_origins", allowed_origins)
1073
+
1074
+ @property
1075
+ @pulumi.getter(name="allowedOrigins")
1076
+ def allowed_origins(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
1077
+ """
1078
+ Gets or sets the list of origins that should be allowed to make cross-origin calls (for example: http://example.com:12345). Use "*" to allow all. If omitted, allow all by default.
1079
+ """
1080
+ return pulumi.get(self, "allowed_origins")
1081
+
1082
+ @allowed_origins.setter
1083
+ def allowed_origins(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
1084
+ pulumi.set(self, "allowed_origins", value)
1085
+
1086
+
1087
+ if not MYPY:
1088
+ class SignalRFeatureArgsDict(TypedDict):
1089
+ """
1090
+ Feature of a resource, which controls the runtime behavior.
1091
+ """
1092
+ flag: pulumi.Input[Union[str, 'FeatureFlags']]
1093
+ """
1094
+ FeatureFlags is the supported features of Azure SignalR service.
1095
+ - ServiceMode: Flag for backend server for SignalR service. Values allowed: "Default": have your own backend server; "Serverless": your application doesn't have a backend server; "Classic": for backward compatibility. Support both Default and Serverless mode but not recommended; "PredefinedOnly": for future use.
1096
+ - EnableConnectivityLogs: "true"/"false", to enable/disable the connectivity log category respectively.
1097
+ - EnableMessagingLogs: "true"/"false", to enable/disable the connectivity log category respectively.
1098
+ - EnableLiveTrace: Live Trace allows you to know what's happening inside Azure SignalR service, it will give you live traces in real time, it will be helpful when you developing your own Azure SignalR based web application or self-troubleshooting some issues. Please note that live traces are counted as outbound messages that will be charged. Values allowed: "true"/"false", to enable/disable live trace feature.
1099
+ """
1100
+ value: pulumi.Input[str]
1101
+ """
1102
+ Value of the feature flag. See Azure SignalR service document https://docs.microsoft.com/azure/azure-signalr/ for allowed values.
1103
+ """
1104
+ properties: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[str]]]]
1105
+ """
1106
+ Optional properties related to this feature.
1107
+ """
1108
+ elif False:
1109
+ SignalRFeatureArgsDict: TypeAlias = Mapping[str, Any]
1110
+
1111
+ @pulumi.input_type
1112
+ class SignalRFeatureArgs:
1113
+ def __init__(__self__, *,
1114
+ flag: pulumi.Input[Union[str, 'FeatureFlags']],
1115
+ value: pulumi.Input[str],
1116
+ properties: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None):
1117
+ """
1118
+ Feature of a resource, which controls the runtime behavior.
1119
+ :param pulumi.Input[Union[str, 'FeatureFlags']] flag: FeatureFlags is the supported features of Azure SignalR service.
1120
+ - ServiceMode: Flag for backend server for SignalR service. Values allowed: "Default": have your own backend server; "Serverless": your application doesn't have a backend server; "Classic": for backward compatibility. Support both Default and Serverless mode but not recommended; "PredefinedOnly": for future use.
1121
+ - EnableConnectivityLogs: "true"/"false", to enable/disable the connectivity log category respectively.
1122
+ - EnableMessagingLogs: "true"/"false", to enable/disable the connectivity log category respectively.
1123
+ - EnableLiveTrace: Live Trace allows you to know what's happening inside Azure SignalR service, it will give you live traces in real time, it will be helpful when you developing your own Azure SignalR based web application or self-troubleshooting some issues. Please note that live traces are counted as outbound messages that will be charged. Values allowed: "true"/"false", to enable/disable live trace feature.
1124
+ :param pulumi.Input[str] value: Value of the feature flag. See Azure SignalR service document https://docs.microsoft.com/azure/azure-signalr/ for allowed values.
1125
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] properties: Optional properties related to this feature.
1126
+ """
1127
+ pulumi.set(__self__, "flag", flag)
1128
+ pulumi.set(__self__, "value", value)
1129
+ if properties is not None:
1130
+ pulumi.set(__self__, "properties", properties)
1131
+
1132
+ @property
1133
+ @pulumi.getter
1134
+ def flag(self) -> pulumi.Input[Union[str, 'FeatureFlags']]:
1135
+ """
1136
+ FeatureFlags is the supported features of Azure SignalR service.
1137
+ - ServiceMode: Flag for backend server for SignalR service. Values allowed: "Default": have your own backend server; "Serverless": your application doesn't have a backend server; "Classic": for backward compatibility. Support both Default and Serverless mode but not recommended; "PredefinedOnly": for future use.
1138
+ - EnableConnectivityLogs: "true"/"false", to enable/disable the connectivity log category respectively.
1139
+ - EnableMessagingLogs: "true"/"false", to enable/disable the connectivity log category respectively.
1140
+ - EnableLiveTrace: Live Trace allows you to know what's happening inside Azure SignalR service, it will give you live traces in real time, it will be helpful when you developing your own Azure SignalR based web application or self-troubleshooting some issues. Please note that live traces are counted as outbound messages that will be charged. Values allowed: "true"/"false", to enable/disable live trace feature.
1141
+ """
1142
+ return pulumi.get(self, "flag")
1143
+
1144
+ @flag.setter
1145
+ def flag(self, value: pulumi.Input[Union[str, 'FeatureFlags']]):
1146
+ pulumi.set(self, "flag", value)
1147
+
1148
+ @property
1149
+ @pulumi.getter
1150
+ def value(self) -> pulumi.Input[str]:
1151
+ """
1152
+ Value of the feature flag. See Azure SignalR service document https://docs.microsoft.com/azure/azure-signalr/ for allowed values.
1153
+ """
1154
+ return pulumi.get(self, "value")
1155
+
1156
+ @value.setter
1157
+ def value(self, value: pulumi.Input[str]):
1158
+ pulumi.set(self, "value", value)
1159
+
1160
+ @property
1161
+ @pulumi.getter
1162
+ def properties(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
1163
+ """
1164
+ Optional properties related to this feature.
1165
+ """
1166
+ return pulumi.get(self, "properties")
1167
+
1168
+ @properties.setter
1169
+ def properties(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
1170
+ pulumi.set(self, "properties", value)
1171
+
1172
+
1173
+ if not MYPY:
1174
+ class SignalRNetworkACLsArgsDict(TypedDict):
1175
+ """
1176
+ Network ACLs for the resource
1177
+ """
1178
+ default_action: NotRequired[pulumi.Input[Union[str, 'ACLAction']]]
1179
+ """
1180
+ Azure Networking ACL Action.
1181
+ """
1182
+ ip_rules: NotRequired[pulumi.Input[Sequence[pulumi.Input['IPRuleArgsDict']]]]
1183
+ """
1184
+ IP rules for filtering public traffic
1185
+ """
1186
+ private_endpoints: NotRequired[pulumi.Input[Sequence[pulumi.Input['PrivateEndpointACLArgsDict']]]]
1187
+ """
1188
+ ACLs for requests from private endpoints
1189
+ """
1190
+ public_network: NotRequired[pulumi.Input['NetworkACLArgsDict']]
1191
+ """
1192
+ Network ACL
1193
+ """
1194
+ elif False:
1195
+ SignalRNetworkACLsArgsDict: TypeAlias = Mapping[str, Any]
1196
+
1197
+ @pulumi.input_type
1198
+ class SignalRNetworkACLsArgs:
1199
+ def __init__(__self__, *,
1200
+ default_action: Optional[pulumi.Input[Union[str, 'ACLAction']]] = None,
1201
+ ip_rules: Optional[pulumi.Input[Sequence[pulumi.Input['IPRuleArgs']]]] = None,
1202
+ private_endpoints: Optional[pulumi.Input[Sequence[pulumi.Input['PrivateEndpointACLArgs']]]] = None,
1203
+ public_network: Optional[pulumi.Input['NetworkACLArgs']] = None):
1204
+ """
1205
+ Network ACLs for the resource
1206
+ :param pulumi.Input[Union[str, 'ACLAction']] default_action: Azure Networking ACL Action.
1207
+ :param pulumi.Input[Sequence[pulumi.Input['IPRuleArgs']]] ip_rules: IP rules for filtering public traffic
1208
+ :param pulumi.Input[Sequence[pulumi.Input['PrivateEndpointACLArgs']]] private_endpoints: ACLs for requests from private endpoints
1209
+ :param pulumi.Input['NetworkACLArgs'] public_network: Network ACL
1210
+ """
1211
+ if default_action is not None:
1212
+ pulumi.set(__self__, "default_action", default_action)
1213
+ if ip_rules is not None:
1214
+ pulumi.set(__self__, "ip_rules", ip_rules)
1215
+ if private_endpoints is not None:
1216
+ pulumi.set(__self__, "private_endpoints", private_endpoints)
1217
+ if public_network is not None:
1218
+ pulumi.set(__self__, "public_network", public_network)
1219
+
1220
+ @property
1221
+ @pulumi.getter(name="defaultAction")
1222
+ def default_action(self) -> Optional[pulumi.Input[Union[str, 'ACLAction']]]:
1223
+ """
1224
+ Azure Networking ACL Action.
1225
+ """
1226
+ return pulumi.get(self, "default_action")
1227
+
1228
+ @default_action.setter
1229
+ def default_action(self, value: Optional[pulumi.Input[Union[str, 'ACLAction']]]):
1230
+ pulumi.set(self, "default_action", value)
1231
+
1232
+ @property
1233
+ @pulumi.getter(name="ipRules")
1234
+ def ip_rules(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['IPRuleArgs']]]]:
1235
+ """
1236
+ IP rules for filtering public traffic
1237
+ """
1238
+ return pulumi.get(self, "ip_rules")
1239
+
1240
+ @ip_rules.setter
1241
+ def ip_rules(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['IPRuleArgs']]]]):
1242
+ pulumi.set(self, "ip_rules", value)
1243
+
1244
+ @property
1245
+ @pulumi.getter(name="privateEndpoints")
1246
+ def private_endpoints(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['PrivateEndpointACLArgs']]]]:
1247
+ """
1248
+ ACLs for requests from private endpoints
1249
+ """
1250
+ return pulumi.get(self, "private_endpoints")
1251
+
1252
+ @private_endpoints.setter
1253
+ def private_endpoints(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['PrivateEndpointACLArgs']]]]):
1254
+ pulumi.set(self, "private_endpoints", value)
1255
+
1256
+ @property
1257
+ @pulumi.getter(name="publicNetwork")
1258
+ def public_network(self) -> Optional[pulumi.Input['NetworkACLArgs']]:
1259
+ """
1260
+ Network ACL
1261
+ """
1262
+ return pulumi.get(self, "public_network")
1263
+
1264
+ @public_network.setter
1265
+ def public_network(self, value: Optional[pulumi.Input['NetworkACLArgs']]):
1266
+ pulumi.set(self, "public_network", value)
1267
+
1268
+
1269
+ if not MYPY:
1270
+ class SignalRTlsSettingsArgsDict(TypedDict):
1271
+ """
1272
+ TLS settings for the resource
1273
+ """
1274
+ client_cert_enabled: NotRequired[pulumi.Input[bool]]
1275
+ """
1276
+ Request client certificate during TLS handshake if enabled. Not supported for free tier. Any input will be ignored for free tier.
1277
+ """
1278
+ elif False:
1279
+ SignalRTlsSettingsArgsDict: TypeAlias = Mapping[str, Any]
1280
+
1281
+ @pulumi.input_type
1282
+ class SignalRTlsSettingsArgs:
1283
+ def __init__(__self__, *,
1284
+ client_cert_enabled: Optional[pulumi.Input[bool]] = None):
1285
+ """
1286
+ TLS settings for the resource
1287
+ :param pulumi.Input[bool] client_cert_enabled: Request client certificate during TLS handshake if enabled. Not supported for free tier. Any input will be ignored for free tier.
1288
+ """
1289
+ if client_cert_enabled is None:
1290
+ client_cert_enabled = False
1291
+ if client_cert_enabled is not None:
1292
+ pulumi.set(__self__, "client_cert_enabled", client_cert_enabled)
1293
+
1294
+ @property
1295
+ @pulumi.getter(name="clientCertEnabled")
1296
+ def client_cert_enabled(self) -> Optional[pulumi.Input[bool]]:
1297
+ """
1298
+ Request client certificate during TLS handshake if enabled. Not supported for free tier. Any input will be ignored for free tier.
1299
+ """
1300
+ return pulumi.get(self, "client_cert_enabled")
1301
+
1302
+ @client_cert_enabled.setter
1303
+ def client_cert_enabled(self, value: Optional[pulumi.Input[bool]]):
1304
+ pulumi.set(self, "client_cert_enabled", value)
1305
+
1306
+
1307
+ if not MYPY:
1308
+ class ThrottleByJwtCustomClaimRuleArgsDict(TypedDict):
1309
+ """
1310
+ Throttle the client connection by a custom JWT claim
1311
+ """
1312
+ claim_name: pulumi.Input[str]
1313
+ """
1314
+ The name of the claim in the JWT token. The client connection with the same claim value will be aggregated. If the claim is not found in the token, the connection will be allowed.
1315
+ """
1316
+ type: pulumi.Input[str]
1317
+ """
1318
+
1319
+ Expected value is 'ThrottleByJwtCustomClaimRule'.
1320
+ """
1321
+ max_count: NotRequired[pulumi.Input[int]]
1322
+ """
1323
+ Maximum connection count allowed for the same Jwt claim value. Clients with the same Jwt claim will get rejected if the connection count exceeds this value. Default value is 20.
1324
+ """
1325
+ elif False:
1326
+ ThrottleByJwtCustomClaimRuleArgsDict: TypeAlias = Mapping[str, Any]
1327
+
1328
+ @pulumi.input_type
1329
+ class ThrottleByJwtCustomClaimRuleArgs:
1330
+ def __init__(__self__, *,
1331
+ claim_name: pulumi.Input[str],
1332
+ type: pulumi.Input[str],
1333
+ max_count: Optional[pulumi.Input[int]] = None):
1334
+ """
1335
+ Throttle the client connection by a custom JWT claim
1336
+ :param pulumi.Input[str] claim_name: The name of the claim in the JWT token. The client connection with the same claim value will be aggregated. If the claim is not found in the token, the connection will be allowed.
1337
+ :param pulumi.Input[str] type:
1338
+ Expected value is 'ThrottleByJwtCustomClaimRule'.
1339
+ :param pulumi.Input[int] max_count: Maximum connection count allowed for the same Jwt claim value. Clients with the same Jwt claim will get rejected if the connection count exceeds this value. Default value is 20.
1340
+ """
1341
+ pulumi.set(__self__, "claim_name", claim_name)
1342
+ pulumi.set(__self__, "type", 'ThrottleByJwtCustomClaimRule')
1343
+ if max_count is None:
1344
+ max_count = 20
1345
+ if max_count is not None:
1346
+ pulumi.set(__self__, "max_count", max_count)
1347
+
1348
+ @property
1349
+ @pulumi.getter(name="claimName")
1350
+ def claim_name(self) -> pulumi.Input[str]:
1351
+ """
1352
+ The name of the claim in the JWT token. The client connection with the same claim value will be aggregated. If the claim is not found in the token, the connection will be allowed.
1353
+ """
1354
+ return pulumi.get(self, "claim_name")
1355
+
1356
+ @claim_name.setter
1357
+ def claim_name(self, value: pulumi.Input[str]):
1358
+ pulumi.set(self, "claim_name", value)
1359
+
1360
+ @property
1361
+ @pulumi.getter
1362
+ def type(self) -> pulumi.Input[str]:
1363
+ """
1364
+
1365
+ Expected value is 'ThrottleByJwtCustomClaimRule'.
1366
+ """
1367
+ return pulumi.get(self, "type")
1368
+
1369
+ @type.setter
1370
+ def type(self, value: pulumi.Input[str]):
1371
+ pulumi.set(self, "type", value)
1372
+
1373
+ @property
1374
+ @pulumi.getter(name="maxCount")
1375
+ def max_count(self) -> Optional[pulumi.Input[int]]:
1376
+ """
1377
+ Maximum connection count allowed for the same Jwt claim value. Clients with the same Jwt claim will get rejected if the connection count exceeds this value. Default value is 20.
1378
+ """
1379
+ return pulumi.get(self, "max_count")
1380
+
1381
+ @max_count.setter
1382
+ def max_count(self, value: Optional[pulumi.Input[int]]):
1383
+ pulumi.set(self, "max_count", value)
1384
+
1385
+
1386
+ if not MYPY:
1387
+ class ThrottleByJwtSignatureRuleArgsDict(TypedDict):
1388
+ """
1389
+ Throttle the client connection by the JWT signature
1390
+ """
1391
+ type: pulumi.Input[str]
1392
+ """
1393
+
1394
+ Expected value is 'ThrottleByJwtSignatureRule'.
1395
+ """
1396
+ max_count: NotRequired[pulumi.Input[int]]
1397
+ """
1398
+ Maximum connection count allowed for the same JWT signature. Clients with the same JWT signature will get rejected if the connection count exceeds this value. Default value is 20.
1399
+ """
1400
+ elif False:
1401
+ ThrottleByJwtSignatureRuleArgsDict: TypeAlias = Mapping[str, Any]
1402
+
1403
+ @pulumi.input_type
1404
+ class ThrottleByJwtSignatureRuleArgs:
1405
+ def __init__(__self__, *,
1406
+ type: pulumi.Input[str],
1407
+ max_count: Optional[pulumi.Input[int]] = None):
1408
+ """
1409
+ Throttle the client connection by the JWT signature
1410
+ :param pulumi.Input[str] type:
1411
+ Expected value is 'ThrottleByJwtSignatureRule'.
1412
+ :param pulumi.Input[int] max_count: Maximum connection count allowed for the same JWT signature. Clients with the same JWT signature will get rejected if the connection count exceeds this value. Default value is 20.
1413
+ """
1414
+ pulumi.set(__self__, "type", 'ThrottleByJwtSignatureRule')
1415
+ if max_count is None:
1416
+ max_count = 20
1417
+ if max_count is not None:
1418
+ pulumi.set(__self__, "max_count", max_count)
1419
+
1420
+ @property
1421
+ @pulumi.getter
1422
+ def type(self) -> pulumi.Input[str]:
1423
+ """
1424
+
1425
+ Expected value is 'ThrottleByJwtSignatureRule'.
1426
+ """
1427
+ return pulumi.get(self, "type")
1428
+
1429
+ @type.setter
1430
+ def type(self, value: pulumi.Input[str]):
1431
+ pulumi.set(self, "type", value)
1432
+
1433
+ @property
1434
+ @pulumi.getter(name="maxCount")
1435
+ def max_count(self) -> Optional[pulumi.Input[int]]:
1436
+ """
1437
+ Maximum connection count allowed for the same JWT signature. Clients with the same JWT signature will get rejected if the connection count exceeds this value. Default value is 20.
1438
+ """
1439
+ return pulumi.get(self, "max_count")
1440
+
1441
+ @max_count.setter
1442
+ def max_count(self, value: Optional[pulumi.Input[int]]):
1443
+ pulumi.set(self, "max_count", value)
1444
+
1445
+
1446
+ if not MYPY:
1447
+ class ThrottleByUserIdRuleArgsDict(TypedDict):
1448
+ """
1449
+ Throttle the client connection by the user ID
1450
+ """
1451
+ type: pulumi.Input[str]
1452
+ """
1453
+
1454
+ Expected value is 'ThrottleByUserIdRule'.
1455
+ """
1456
+ max_count: NotRequired[pulumi.Input[int]]
1457
+ """
1458
+ Maximum connection count allowed for the same user ID. Clients with the same user ID will get rejected if the connection count exceeds this value. Default value is 20.
1459
+ """
1460
+ elif False:
1461
+ ThrottleByUserIdRuleArgsDict: TypeAlias = Mapping[str, Any]
1462
+
1463
+ @pulumi.input_type
1464
+ class ThrottleByUserIdRuleArgs:
1465
+ def __init__(__self__, *,
1466
+ type: pulumi.Input[str],
1467
+ max_count: Optional[pulumi.Input[int]] = None):
1468
+ """
1469
+ Throttle the client connection by the user ID
1470
+ :param pulumi.Input[str] type:
1471
+ Expected value is 'ThrottleByUserIdRule'.
1472
+ :param pulumi.Input[int] max_count: Maximum connection count allowed for the same user ID. Clients with the same user ID will get rejected if the connection count exceeds this value. Default value is 20.
1473
+ """
1474
+ pulumi.set(__self__, "type", 'ThrottleByUserIdRule')
1475
+ if max_count is None:
1476
+ max_count = 20
1477
+ if max_count is not None:
1478
+ pulumi.set(__self__, "max_count", max_count)
1479
+
1480
+ @property
1481
+ @pulumi.getter
1482
+ def type(self) -> pulumi.Input[str]:
1483
+ """
1484
+
1485
+ Expected value is 'ThrottleByUserIdRule'.
1486
+ """
1487
+ return pulumi.get(self, "type")
1488
+
1489
+ @type.setter
1490
+ def type(self, value: pulumi.Input[str]):
1491
+ pulumi.set(self, "type", value)
1492
+
1493
+ @property
1494
+ @pulumi.getter(name="maxCount")
1495
+ def max_count(self) -> Optional[pulumi.Input[int]]:
1496
+ """
1497
+ Maximum connection count allowed for the same user ID. Clients with the same user ID will get rejected if the connection count exceeds this value. Default value is 20.
1498
+ """
1499
+ return pulumi.get(self, "max_count")
1500
+
1501
+ @max_count.setter
1502
+ def max_count(self, value: Optional[pulumi.Input[int]]):
1503
+ pulumi.set(self, "max_count", value)
1504
+
1505
+
1506
+ if not MYPY:
1507
+ class TrafficThrottleByJwtCustomClaimRuleArgsDict(TypedDict):
1508
+ """
1509
+ Throttle the client traffic by a custom JWT claim
1510
+ """
1511
+ claim_name: pulumi.Input[str]
1512
+ """
1513
+ The name of the claim in the JWT token. The message bytes with the same claim value will be aggregated. If the claim is not found in the token, the rule will be skipped.
1514
+ """
1515
+ type: pulumi.Input[str]
1516
+ """
1517
+
1518
+ Expected value is 'TrafficThrottleByJwtCustomClaimRule'.
1519
+ """
1520
+ aggregation_window_in_seconds: NotRequired[pulumi.Input[int]]
1521
+ """
1522
+ The aggregation window for the message bytes. The message bytes will be aggregated in this window and be reset after the window. Default value is 60 seconds.
1523
+ """
1524
+ max_inbound_message_bytes: NotRequired[pulumi.Input[float]]
1525
+ """
1526
+ Maximum accumulated inbound message bytes allowed for the same JWT signature within a time window. Clients with the same JWT claim will get disconnected if the message bytes exceeds this value. Default value is 1GB.
1527
+ """
1528
+ elif False:
1529
+ TrafficThrottleByJwtCustomClaimRuleArgsDict: TypeAlias = Mapping[str, Any]
1530
+
1531
+ @pulumi.input_type
1532
+ class TrafficThrottleByJwtCustomClaimRuleArgs:
1533
+ def __init__(__self__, *,
1534
+ claim_name: pulumi.Input[str],
1535
+ type: pulumi.Input[str],
1536
+ aggregation_window_in_seconds: Optional[pulumi.Input[int]] = None,
1537
+ max_inbound_message_bytes: Optional[pulumi.Input[float]] = None):
1538
+ """
1539
+ Throttle the client traffic by a custom JWT claim
1540
+ :param pulumi.Input[str] claim_name: The name of the claim in the JWT token. The message bytes with the same claim value will be aggregated. If the claim is not found in the token, the rule will be skipped.
1541
+ :param pulumi.Input[str] type:
1542
+ Expected value is 'TrafficThrottleByJwtCustomClaimRule'.
1543
+ :param pulumi.Input[int] aggregation_window_in_seconds: The aggregation window for the message bytes. The message bytes will be aggregated in this window and be reset after the window. Default value is 60 seconds.
1544
+ :param pulumi.Input[float] max_inbound_message_bytes: Maximum accumulated inbound message bytes allowed for the same JWT signature within a time window. Clients with the same JWT claim will get disconnected if the message bytes exceeds this value. Default value is 1GB.
1545
+ """
1546
+ pulumi.set(__self__, "claim_name", claim_name)
1547
+ pulumi.set(__self__, "type", 'TrafficThrottleByJwtCustomClaimRule')
1548
+ if aggregation_window_in_seconds is None:
1549
+ aggregation_window_in_seconds = 60
1550
+ if aggregation_window_in_seconds is not None:
1551
+ pulumi.set(__self__, "aggregation_window_in_seconds", aggregation_window_in_seconds)
1552
+ if max_inbound_message_bytes is not None:
1553
+ pulumi.set(__self__, "max_inbound_message_bytes", max_inbound_message_bytes)
1554
+
1555
+ @property
1556
+ @pulumi.getter(name="claimName")
1557
+ def claim_name(self) -> pulumi.Input[str]:
1558
+ """
1559
+ The name of the claim in the JWT token. The message bytes with the same claim value will be aggregated. If the claim is not found in the token, the rule will be skipped.
1560
+ """
1561
+ return pulumi.get(self, "claim_name")
1562
+
1563
+ @claim_name.setter
1564
+ def claim_name(self, value: pulumi.Input[str]):
1565
+ pulumi.set(self, "claim_name", value)
1566
+
1567
+ @property
1568
+ @pulumi.getter
1569
+ def type(self) -> pulumi.Input[str]:
1570
+ """
1571
+
1572
+ Expected value is 'TrafficThrottleByJwtCustomClaimRule'.
1573
+ """
1574
+ return pulumi.get(self, "type")
1575
+
1576
+ @type.setter
1577
+ def type(self, value: pulumi.Input[str]):
1578
+ pulumi.set(self, "type", value)
1579
+
1580
+ @property
1581
+ @pulumi.getter(name="aggregationWindowInSeconds")
1582
+ def aggregation_window_in_seconds(self) -> Optional[pulumi.Input[int]]:
1583
+ """
1584
+ The aggregation window for the message bytes. The message bytes will be aggregated in this window and be reset after the window. Default value is 60 seconds.
1585
+ """
1586
+ return pulumi.get(self, "aggregation_window_in_seconds")
1587
+
1588
+ @aggregation_window_in_seconds.setter
1589
+ def aggregation_window_in_seconds(self, value: Optional[pulumi.Input[int]]):
1590
+ pulumi.set(self, "aggregation_window_in_seconds", value)
1591
+
1592
+ @property
1593
+ @pulumi.getter(name="maxInboundMessageBytes")
1594
+ def max_inbound_message_bytes(self) -> Optional[pulumi.Input[float]]:
1595
+ """
1596
+ Maximum accumulated inbound message bytes allowed for the same JWT signature within a time window. Clients with the same JWT claim will get disconnected if the message bytes exceeds this value. Default value is 1GB.
1597
+ """
1598
+ return pulumi.get(self, "max_inbound_message_bytes")
1599
+
1600
+ @max_inbound_message_bytes.setter
1601
+ def max_inbound_message_bytes(self, value: Optional[pulumi.Input[float]]):
1602
+ pulumi.set(self, "max_inbound_message_bytes", value)
1603
+
1604
+
1605
+ if not MYPY:
1606
+ class TrafficThrottleByJwtSignatureRuleArgsDict(TypedDict):
1607
+ """
1608
+ Throttle the client traffic by the JWT signature
1609
+ """
1610
+ type: pulumi.Input[str]
1611
+ """
1612
+
1613
+ Expected value is 'TrafficThrottleByJwtSignatureRule'.
1614
+ """
1615
+ aggregation_window_in_seconds: NotRequired[pulumi.Input[int]]
1616
+ """
1617
+ The aggregation window for the message bytes. The message bytes will be aggregated in this window and be reset after the window. Default value is 60 seconds.
1618
+ """
1619
+ max_inbound_message_bytes: NotRequired[pulumi.Input[float]]
1620
+ """
1621
+ Maximum accumulated inbound message bytes allowed for the same JWT signature within a time window. Clients with the same JWT signature will get disconnected if the message bytes exceeds this value. Default value is 1GB.
1622
+ """
1623
+ elif False:
1624
+ TrafficThrottleByJwtSignatureRuleArgsDict: TypeAlias = Mapping[str, Any]
1625
+
1626
+ @pulumi.input_type
1627
+ class TrafficThrottleByJwtSignatureRuleArgs:
1628
+ def __init__(__self__, *,
1629
+ type: pulumi.Input[str],
1630
+ aggregation_window_in_seconds: Optional[pulumi.Input[int]] = None,
1631
+ max_inbound_message_bytes: Optional[pulumi.Input[float]] = None):
1632
+ """
1633
+ Throttle the client traffic by the JWT signature
1634
+ :param pulumi.Input[str] type:
1635
+ Expected value is 'TrafficThrottleByJwtSignatureRule'.
1636
+ :param pulumi.Input[int] aggregation_window_in_seconds: The aggregation window for the message bytes. The message bytes will be aggregated in this window and be reset after the window. Default value is 60 seconds.
1637
+ :param pulumi.Input[float] max_inbound_message_bytes: Maximum accumulated inbound message bytes allowed for the same JWT signature within a time window. Clients with the same JWT signature will get disconnected if the message bytes exceeds this value. Default value is 1GB.
1638
+ """
1639
+ pulumi.set(__self__, "type", 'TrafficThrottleByJwtSignatureRule')
1640
+ if aggregation_window_in_seconds is None:
1641
+ aggregation_window_in_seconds = 60
1642
+ if aggregation_window_in_seconds is not None:
1643
+ pulumi.set(__self__, "aggregation_window_in_seconds", aggregation_window_in_seconds)
1644
+ if max_inbound_message_bytes is not None:
1645
+ pulumi.set(__self__, "max_inbound_message_bytes", max_inbound_message_bytes)
1646
+
1647
+ @property
1648
+ @pulumi.getter
1649
+ def type(self) -> pulumi.Input[str]:
1650
+ """
1651
+
1652
+ Expected value is 'TrafficThrottleByJwtSignatureRule'.
1653
+ """
1654
+ return pulumi.get(self, "type")
1655
+
1656
+ @type.setter
1657
+ def type(self, value: pulumi.Input[str]):
1658
+ pulumi.set(self, "type", value)
1659
+
1660
+ @property
1661
+ @pulumi.getter(name="aggregationWindowInSeconds")
1662
+ def aggregation_window_in_seconds(self) -> Optional[pulumi.Input[int]]:
1663
+ """
1664
+ The aggregation window for the message bytes. The message bytes will be aggregated in this window and be reset after the window. Default value is 60 seconds.
1665
+ """
1666
+ return pulumi.get(self, "aggregation_window_in_seconds")
1667
+
1668
+ @aggregation_window_in_seconds.setter
1669
+ def aggregation_window_in_seconds(self, value: Optional[pulumi.Input[int]]):
1670
+ pulumi.set(self, "aggregation_window_in_seconds", value)
1671
+
1672
+ @property
1673
+ @pulumi.getter(name="maxInboundMessageBytes")
1674
+ def max_inbound_message_bytes(self) -> Optional[pulumi.Input[float]]:
1675
+ """
1676
+ Maximum accumulated inbound message bytes allowed for the same JWT signature within a time window. Clients with the same JWT signature will get disconnected if the message bytes exceeds this value. Default value is 1GB.
1677
+ """
1678
+ return pulumi.get(self, "max_inbound_message_bytes")
1679
+
1680
+ @max_inbound_message_bytes.setter
1681
+ def max_inbound_message_bytes(self, value: Optional[pulumi.Input[float]]):
1682
+ pulumi.set(self, "max_inbound_message_bytes", value)
1683
+
1684
+
1685
+ if not MYPY:
1686
+ class TrafficThrottleByUserIdRuleArgsDict(TypedDict):
1687
+ """
1688
+ Throttle the client traffic by the user ID
1689
+ """
1690
+ type: pulumi.Input[str]
1691
+ """
1692
+
1693
+ Expected value is 'TrafficThrottleByUserIdRule'.
1694
+ """
1695
+ aggregation_window_in_seconds: NotRequired[pulumi.Input[int]]
1696
+ """
1697
+ The aggregation window for the message bytes. The message bytes will be aggregated in this window and be reset after the window. Default value is 60 seconds.
1698
+ """
1699
+ max_inbound_message_bytes: NotRequired[pulumi.Input[float]]
1700
+ """
1701
+ Maximum accumulated inbound message bytes allowed for the same user ID within a time window. Clients with the same user ID will get disconnected if the message bytes exceeds this value. Default value is 1GB.
1702
+ """
1703
+ elif False:
1704
+ TrafficThrottleByUserIdRuleArgsDict: TypeAlias = Mapping[str, Any]
1705
+
1706
+ @pulumi.input_type
1707
+ class TrafficThrottleByUserIdRuleArgs:
1708
+ def __init__(__self__, *,
1709
+ type: pulumi.Input[str],
1710
+ aggregation_window_in_seconds: Optional[pulumi.Input[int]] = None,
1711
+ max_inbound_message_bytes: Optional[pulumi.Input[float]] = None):
1712
+ """
1713
+ Throttle the client traffic by the user ID
1714
+ :param pulumi.Input[str] type:
1715
+ Expected value is 'TrafficThrottleByUserIdRule'.
1716
+ :param pulumi.Input[int] aggregation_window_in_seconds: The aggregation window for the message bytes. The message bytes will be aggregated in this window and be reset after the window. Default value is 60 seconds.
1717
+ :param pulumi.Input[float] max_inbound_message_bytes: Maximum accumulated inbound message bytes allowed for the same user ID within a time window. Clients with the same user ID will get disconnected if the message bytes exceeds this value. Default value is 1GB.
1718
+ """
1719
+ pulumi.set(__self__, "type", 'TrafficThrottleByUserIdRule')
1720
+ if aggregation_window_in_seconds is None:
1721
+ aggregation_window_in_seconds = 60
1722
+ if aggregation_window_in_seconds is not None:
1723
+ pulumi.set(__self__, "aggregation_window_in_seconds", aggregation_window_in_seconds)
1724
+ if max_inbound_message_bytes is not None:
1725
+ pulumi.set(__self__, "max_inbound_message_bytes", max_inbound_message_bytes)
1726
+
1727
+ @property
1728
+ @pulumi.getter
1729
+ def type(self) -> pulumi.Input[str]:
1730
+ """
1731
+
1732
+ Expected value is 'TrafficThrottleByUserIdRule'.
1733
+ """
1734
+ return pulumi.get(self, "type")
1735
+
1736
+ @type.setter
1737
+ def type(self, value: pulumi.Input[str]):
1738
+ pulumi.set(self, "type", value)
1739
+
1740
+ @property
1741
+ @pulumi.getter(name="aggregationWindowInSeconds")
1742
+ def aggregation_window_in_seconds(self) -> Optional[pulumi.Input[int]]:
1743
+ """
1744
+ The aggregation window for the message bytes. The message bytes will be aggregated in this window and be reset after the window. Default value is 60 seconds.
1745
+ """
1746
+ return pulumi.get(self, "aggregation_window_in_seconds")
1747
+
1748
+ @aggregation_window_in_seconds.setter
1749
+ def aggregation_window_in_seconds(self, value: Optional[pulumi.Input[int]]):
1750
+ pulumi.set(self, "aggregation_window_in_seconds", value)
1751
+
1752
+ @property
1753
+ @pulumi.getter(name="maxInboundMessageBytes")
1754
+ def max_inbound_message_bytes(self) -> Optional[pulumi.Input[float]]:
1755
+ """
1756
+ Maximum accumulated inbound message bytes allowed for the same user ID within a time window. Clients with the same user ID will get disconnected if the message bytes exceeds this value. Default value is 1GB.
1757
+ """
1758
+ return pulumi.get(self, "max_inbound_message_bytes")
1759
+
1760
+ @max_inbound_message_bytes.setter
1761
+ def max_inbound_message_bytes(self, value: Optional[pulumi.Input[float]]):
1762
+ pulumi.set(self, "max_inbound_message_bytes", value)
1763
+
1764
+
1765
+ if not MYPY:
1766
+ class UpstreamAuthSettingsArgsDict(TypedDict):
1767
+ """
1768
+ Upstream auth settings. If not set, no auth is used for upstream messages.
1769
+ """
1770
+ managed_identity: NotRequired[pulumi.Input['ManagedIdentitySettingsArgsDict']]
1771
+ """
1772
+ Managed identity settings for upstream.
1773
+ """
1774
+ type: NotRequired[pulumi.Input[Union[str, 'UpstreamAuthType']]]
1775
+ """
1776
+ Upstream auth type enum.
1777
+ """
1778
+ elif False:
1779
+ UpstreamAuthSettingsArgsDict: TypeAlias = Mapping[str, Any]
1780
+
1781
+ @pulumi.input_type
1782
+ class UpstreamAuthSettingsArgs:
1783
+ def __init__(__self__, *,
1784
+ managed_identity: Optional[pulumi.Input['ManagedIdentitySettingsArgs']] = None,
1785
+ type: Optional[pulumi.Input[Union[str, 'UpstreamAuthType']]] = None):
1786
+ """
1787
+ Upstream auth settings. If not set, no auth is used for upstream messages.
1788
+ :param pulumi.Input['ManagedIdentitySettingsArgs'] managed_identity: Managed identity settings for upstream.
1789
+ :param pulumi.Input[Union[str, 'UpstreamAuthType']] type: Upstream auth type enum.
1790
+ """
1791
+ if managed_identity is not None:
1792
+ pulumi.set(__self__, "managed_identity", managed_identity)
1793
+ if type is not None:
1794
+ pulumi.set(__self__, "type", type)
1795
+
1796
+ @property
1797
+ @pulumi.getter(name="managedIdentity")
1798
+ def managed_identity(self) -> Optional[pulumi.Input['ManagedIdentitySettingsArgs']]:
1799
+ """
1800
+ Managed identity settings for upstream.
1801
+ """
1802
+ return pulumi.get(self, "managed_identity")
1803
+
1804
+ @managed_identity.setter
1805
+ def managed_identity(self, value: Optional[pulumi.Input['ManagedIdentitySettingsArgs']]):
1806
+ pulumi.set(self, "managed_identity", value)
1807
+
1808
+ @property
1809
+ @pulumi.getter
1810
+ def type(self) -> Optional[pulumi.Input[Union[str, 'UpstreamAuthType']]]:
1811
+ """
1812
+ Upstream auth type enum.
1813
+ """
1814
+ return pulumi.get(self, "type")
1815
+
1816
+ @type.setter
1817
+ def type(self, value: Optional[pulumi.Input[Union[str, 'UpstreamAuthType']]]):
1818
+ pulumi.set(self, "type", value)
1819
+
1820
+
1821
+ if not MYPY:
1822
+ class UpstreamTemplateArgsDict(TypedDict):
1823
+ """
1824
+ Upstream template item settings. It defines the Upstream URL of the incoming requests.
1825
+ The template defines the pattern of the event, the hub or the category of the incoming request that matches current URL template.
1826
+ """
1827
+ url_template: pulumi.Input[str]
1828
+ """
1829
+ Gets or sets the Upstream URL template. You can use 3 predefined parameters {hub}, {category} {event} inside the template, the value of the Upstream URL is dynamically calculated when the client request comes in.
1830
+ For example, if the urlTemplate is `http://example.com/{hub}/api/{event}`, with a client request from hub `chat` connects, it will first POST to this URL: `http://example.com/chat/api/connect`.
1831
+ """
1832
+ auth: NotRequired[pulumi.Input['UpstreamAuthSettingsArgsDict']]
1833
+ """
1834
+ Upstream auth settings. If not set, no auth is used for upstream messages.
1835
+ """
1836
+ category_pattern: NotRequired[pulumi.Input[str]]
1837
+ """
1838
+ Gets or sets the matching pattern for category names. If not set, it matches any category.
1839
+ There are 3 kind of patterns supported:
1840
+ 1. "*", it to matches any category name.
1841
+ 2. Combine multiple categories with ",", for example "connections,messages", it matches category "connections" and "messages".
1842
+ 3. The single category name, for example, "connections", it matches the category "connections".
1843
+ """
1844
+ event_pattern: NotRequired[pulumi.Input[str]]
1845
+ """
1846
+ Gets or sets the matching pattern for event names. If not set, it matches any event.
1847
+ There are 3 kind of patterns supported:
1848
+ 1. "*", it to matches any event name.
1849
+ 2. Combine multiple events with ",", for example "connect,disconnect", it matches event "connect" and "disconnect".
1850
+ 3. The single event name, for example, "connect", it matches "connect".
1851
+ """
1852
+ hub_pattern: NotRequired[pulumi.Input[str]]
1853
+ """
1854
+ Gets or sets the matching pattern for hub names. If not set, it matches any hub.
1855
+ There are 3 kind of patterns supported:
1856
+ 1. "*", it to matches any hub name.
1857
+ 2. Combine multiple hubs with ",", for example "hub1,hub2", it matches "hub1" and "hub2".
1858
+ 3. The single hub name, for example, "hub1", it matches "hub1".
1859
+ """
1860
+ elif False:
1861
+ UpstreamTemplateArgsDict: TypeAlias = Mapping[str, Any]
1862
+
1863
+ @pulumi.input_type
1864
+ class UpstreamTemplateArgs:
1865
+ def __init__(__self__, *,
1866
+ url_template: pulumi.Input[str],
1867
+ auth: Optional[pulumi.Input['UpstreamAuthSettingsArgs']] = None,
1868
+ category_pattern: Optional[pulumi.Input[str]] = None,
1869
+ event_pattern: Optional[pulumi.Input[str]] = None,
1870
+ hub_pattern: Optional[pulumi.Input[str]] = None):
1871
+ """
1872
+ Upstream template item settings. It defines the Upstream URL of the incoming requests.
1873
+ The template defines the pattern of the event, the hub or the category of the incoming request that matches current URL template.
1874
+ :param pulumi.Input[str] url_template: Gets or sets the Upstream URL template. You can use 3 predefined parameters {hub}, {category} {event} inside the template, the value of the Upstream URL is dynamically calculated when the client request comes in.
1875
+ For example, if the urlTemplate is `http://example.com/{hub}/api/{event}`, with a client request from hub `chat` connects, it will first POST to this URL: `http://example.com/chat/api/connect`.
1876
+ :param pulumi.Input['UpstreamAuthSettingsArgs'] auth: Upstream auth settings. If not set, no auth is used for upstream messages.
1877
+ :param pulumi.Input[str] category_pattern: Gets or sets the matching pattern for category names. If not set, it matches any category.
1878
+ There are 3 kind of patterns supported:
1879
+ 1. "*", it to matches any category name.
1880
+ 2. Combine multiple categories with ",", for example "connections,messages", it matches category "connections" and "messages".
1881
+ 3. The single category name, for example, "connections", it matches the category "connections".
1882
+ :param pulumi.Input[str] event_pattern: Gets or sets the matching pattern for event names. If not set, it matches any event.
1883
+ There are 3 kind of patterns supported:
1884
+ 1. "*", it to matches any event name.
1885
+ 2. Combine multiple events with ",", for example "connect,disconnect", it matches event "connect" and "disconnect".
1886
+ 3. The single event name, for example, "connect", it matches "connect".
1887
+ :param pulumi.Input[str] hub_pattern: Gets or sets the matching pattern for hub names. If not set, it matches any hub.
1888
+ There are 3 kind of patterns supported:
1889
+ 1. "*", it to matches any hub name.
1890
+ 2. Combine multiple hubs with ",", for example "hub1,hub2", it matches "hub1" and "hub2".
1891
+ 3. The single hub name, for example, "hub1", it matches "hub1".
1892
+ """
1893
+ pulumi.set(__self__, "url_template", url_template)
1894
+ if auth is not None:
1895
+ pulumi.set(__self__, "auth", auth)
1896
+ if category_pattern is not None:
1897
+ pulumi.set(__self__, "category_pattern", category_pattern)
1898
+ if event_pattern is not None:
1899
+ pulumi.set(__self__, "event_pattern", event_pattern)
1900
+ if hub_pattern is not None:
1901
+ pulumi.set(__self__, "hub_pattern", hub_pattern)
1902
+
1903
+ @property
1904
+ @pulumi.getter(name="urlTemplate")
1905
+ def url_template(self) -> pulumi.Input[str]:
1906
+ """
1907
+ Gets or sets the Upstream URL template. You can use 3 predefined parameters {hub}, {category} {event} inside the template, the value of the Upstream URL is dynamically calculated when the client request comes in.
1908
+ For example, if the urlTemplate is `http://example.com/{hub}/api/{event}`, with a client request from hub `chat` connects, it will first POST to this URL: `http://example.com/chat/api/connect`.
1909
+ """
1910
+ return pulumi.get(self, "url_template")
1911
+
1912
+ @url_template.setter
1913
+ def url_template(self, value: pulumi.Input[str]):
1914
+ pulumi.set(self, "url_template", value)
1915
+
1916
+ @property
1917
+ @pulumi.getter
1918
+ def auth(self) -> Optional[pulumi.Input['UpstreamAuthSettingsArgs']]:
1919
+ """
1920
+ Upstream auth settings. If not set, no auth is used for upstream messages.
1921
+ """
1922
+ return pulumi.get(self, "auth")
1923
+
1924
+ @auth.setter
1925
+ def auth(self, value: Optional[pulumi.Input['UpstreamAuthSettingsArgs']]):
1926
+ pulumi.set(self, "auth", value)
1927
+
1928
+ @property
1929
+ @pulumi.getter(name="categoryPattern")
1930
+ def category_pattern(self) -> Optional[pulumi.Input[str]]:
1931
+ """
1932
+ Gets or sets the matching pattern for category names. If not set, it matches any category.
1933
+ There are 3 kind of patterns supported:
1934
+ 1. "*", it to matches any category name.
1935
+ 2. Combine multiple categories with ",", for example "connections,messages", it matches category "connections" and "messages".
1936
+ 3. The single category name, for example, "connections", it matches the category "connections".
1937
+ """
1938
+ return pulumi.get(self, "category_pattern")
1939
+
1940
+ @category_pattern.setter
1941
+ def category_pattern(self, value: Optional[pulumi.Input[str]]):
1942
+ pulumi.set(self, "category_pattern", value)
1943
+
1944
+ @property
1945
+ @pulumi.getter(name="eventPattern")
1946
+ def event_pattern(self) -> Optional[pulumi.Input[str]]:
1947
+ """
1948
+ Gets or sets the matching pattern for event names. If not set, it matches any event.
1949
+ There are 3 kind of patterns supported:
1950
+ 1. "*", it to matches any event name.
1951
+ 2. Combine multiple events with ",", for example "connect,disconnect", it matches event "connect" and "disconnect".
1952
+ 3. The single event name, for example, "connect", it matches "connect".
1953
+ """
1954
+ return pulumi.get(self, "event_pattern")
1955
+
1956
+ @event_pattern.setter
1957
+ def event_pattern(self, value: Optional[pulumi.Input[str]]):
1958
+ pulumi.set(self, "event_pattern", value)
1959
+
1960
+ @property
1961
+ @pulumi.getter(name="hubPattern")
1962
+ def hub_pattern(self) -> Optional[pulumi.Input[str]]:
1963
+ """
1964
+ Gets or sets the matching pattern for hub names. If not set, it matches any hub.
1965
+ There are 3 kind of patterns supported:
1966
+ 1. "*", it to matches any hub name.
1967
+ 2. Combine multiple hubs with ",", for example "hub1,hub2", it matches "hub1" and "hub2".
1968
+ 3. The single hub name, for example, "hub1", it matches "hub1".
1969
+ """
1970
+ return pulumi.get(self, "hub_pattern")
1971
+
1972
+ @hub_pattern.setter
1973
+ def hub_pattern(self, value: Optional[pulumi.Input[str]]):
1974
+ pulumi.set(self, "hub_pattern", value)
1975
+
1976
+