pulumi-consul 3.12.0a1709360320__py3-none-any.whl → 3.13.0a1736832526__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-consul might be problematic. Click here for more details.

Files changed (71) hide show
  1. pulumi_consul/__init__.py +10 -0
  2. pulumi_consul/_inputs.py +1592 -31
  3. pulumi_consul/_utilities.py +41 -5
  4. pulumi_consul/acl_auth_method.py +17 -14
  5. pulumi_consul/acl_binding_rule.py +12 -5
  6. pulumi_consul/acl_policy.py +9 -4
  7. pulumi_consul/acl_role.py +39 -30
  8. pulumi_consul/acl_role_policy_attachment.py +15 -8
  9. pulumi_consul/acl_token.py +36 -27
  10. pulumi_consul/acl_token_policy_attachment.py +7 -2
  11. pulumi_consul/acl_token_role_attachment.py +11 -4
  12. pulumi_consul/admin_partition.py +13 -4
  13. pulumi_consul/agent_service.py +7 -0
  14. pulumi_consul/autopilot_config.py +5 -0
  15. pulumi_consul/catalog_entry.py +16 -62
  16. pulumi_consul/certificate_authority.py +10 -51
  17. pulumi_consul/config/__init__.pyi +5 -0
  18. pulumi_consul/config/outputs.py +5 -0
  19. pulumi_consul/config/vars.py +5 -0
  20. pulumi_consul/config_entry.py +75 -26
  21. pulumi_consul/config_entry_service_defaults.py +58 -51
  22. pulumi_consul/config_entry_service_intentions.py +80 -71
  23. pulumi_consul/config_entry_service_resolver.py +94 -87
  24. pulumi_consul/config_entry_service_router.py +31 -62
  25. pulumi_consul/config_entry_service_splitter.py +104 -93
  26. pulumi_consul/config_entry_v2_exported_services.py +479 -0
  27. pulumi_consul/get_acl_auth_method.py +26 -8
  28. pulumi_consul/get_acl_policy.py +20 -5
  29. pulumi_consul/get_acl_role.py +24 -5
  30. pulumi_consul/get_acl_token.py +25 -5
  31. pulumi_consul/get_acl_token_secret_id.py +29 -11
  32. pulumi_consul/get_agent_config.py +17 -5
  33. pulumi_consul/get_agent_self.py +82 -5
  34. pulumi_consul/get_autopilot_health.py +16 -5
  35. pulumi_consul/get_catalog_nodes.py +21 -9
  36. pulumi_consul/get_catalog_service.py +56 -13
  37. pulumi_consul/get_catalog_services.py +53 -9
  38. pulumi_consul/get_config_entry.py +20 -5
  39. pulumi_consul/get_config_entry_v2_exported_services.py +232 -0
  40. pulumi_consul/get_datacenters.py +12 -5
  41. pulumi_consul/get_key_prefix.py +55 -38
  42. pulumi_consul/get_keys.py +44 -30
  43. pulumi_consul/get_network_area_members.py +26 -16
  44. pulumi_consul/get_network_segments.py +22 -14
  45. pulumi_consul/get_nodes.py +21 -9
  46. pulumi_consul/get_peering.py +22 -5
  47. pulumi_consul/get_peerings.py +14 -5
  48. pulumi_consul/get_service.py +56 -13
  49. pulumi_consul/get_service_health.py +28 -5
  50. pulumi_consul/get_services.py +53 -9
  51. pulumi_consul/intention.py +17 -12
  52. pulumi_consul/key_prefix.py +48 -50
  53. pulumi_consul/keys.py +26 -30
  54. pulumi_consul/license.py +9 -2
  55. pulumi_consul/namespace.py +13 -4
  56. pulumi_consul/namespace_policy_attachment.py +11 -4
  57. pulumi_consul/namespace_role_attachment.py +11 -4
  58. pulumi_consul/network_area.py +11 -15
  59. pulumi_consul/node.py +19 -19
  60. pulumi_consul/outputs.py +30 -27
  61. pulumi_consul/peering.py +13 -18
  62. pulumi_consul/peering_token.py +55 -11
  63. pulumi_consul/prepared_query.py +101 -101
  64. pulumi_consul/provider.py +11 -6
  65. pulumi_consul/pulumi-plugin.json +2 -1
  66. pulumi_consul/service.py +144 -19
  67. {pulumi_consul-3.12.0a1709360320.dist-info → pulumi_consul-3.13.0a1736832526.dist-info}/METADATA +7 -6
  68. pulumi_consul-3.13.0a1736832526.dist-info/RECORD +72 -0
  69. {pulumi_consul-3.12.0a1709360320.dist-info → pulumi_consul-3.13.0a1736832526.dist-info}/WHEEL +1 -1
  70. pulumi_consul-3.12.0a1709360320.dist-info/RECORD +0 -70
  71. {pulumi_consul-3.12.0a1709360320.dist-info → pulumi_consul-3.13.0a1736832526.dist-info}/top_level.txt +0 -0
@@ -4,9 +4,14 @@
4
4
 
5
5
  import copy
6
6
  import warnings
7
+ import sys
7
8
  import pulumi
8
9
  import pulumi.runtime
9
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
10
15
  from . import _utilities
11
16
 
12
17
  __all__ = ['NetworkAreaArgs', 'NetworkArea']
@@ -88,16 +93,13 @@ Please use the token argument in the provider configuration""")
88
93
 
89
94
  @property
90
95
  @pulumi.getter
96
+ @_utilities.deprecated("""The token argument has been deprecated and will be removed in a future release.
97
+ Please use the token argument in the provider configuration""")
91
98
  def token(self) -> Optional[pulumi.Input[str]]:
92
99
  """
93
100
  The ACL token to use. This overrides the
94
101
  token that the agent provides by default.
95
102
  """
96
- warnings.warn("""The token argument has been deprecated and will be removed in a future release.
97
- Please use the token argument in the provider configuration""", DeprecationWarning)
98
- pulumi.log.warn("""token is deprecated: The token argument has been deprecated and will be removed in a future release.
99
- Please use the token argument in the provider configuration""")
100
-
101
103
  return pulumi.get(self, "token")
102
104
 
103
105
  @token.setter
@@ -196,16 +198,13 @@ Please use the token argument in the provider configuration""")
196
198
 
197
199
  @property
198
200
  @pulumi.getter
201
+ @_utilities.deprecated("""The token argument has been deprecated and will be removed in a future release.
202
+ Please use the token argument in the provider configuration""")
199
203
  def token(self) -> Optional[pulumi.Input[str]]:
200
204
  """
201
205
  The ACL token to use. This overrides the
202
206
  token that the agent provides by default.
203
207
  """
204
- warnings.warn("""The token argument has been deprecated and will be removed in a future release.
205
- Please use the token argument in the provider configuration""", DeprecationWarning)
206
- pulumi.log.warn("""token is deprecated: The token argument has been deprecated and will be removed in a future release.
207
- Please use the token argument in the provider configuration""")
208
-
209
208
  return pulumi.get(self, "token")
210
209
 
211
210
  @token.setter
@@ -413,16 +412,13 @@ class NetworkArea(pulumi.CustomResource):
413
412
 
414
413
  @property
415
414
  @pulumi.getter
415
+ @_utilities.deprecated("""The token argument has been deprecated and will be removed in a future release.
416
+ Please use the token argument in the provider configuration""")
416
417
  def token(self) -> pulumi.Output[Optional[str]]:
417
418
  """
418
419
  The ACL token to use. This overrides the
419
420
  token that the agent provides by default.
420
421
  """
421
- warnings.warn("""The token argument has been deprecated and will be removed in a future release.
422
- Please use the token argument in the provider configuration""", DeprecationWarning)
423
- pulumi.log.warn("""token is deprecated: The token argument has been deprecated and will be removed in a future release.
424
- Please use the token argument in the provider configuration""")
425
-
426
422
  return pulumi.get(self, "token")
427
423
 
428
424
  @property
pulumi_consul/node.py CHANGED
@@ -4,9 +4,14 @@
4
4
 
5
5
  import copy
6
6
  import warnings
7
+ import sys
7
8
  import pulumi
8
9
  import pulumi.runtime
9
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
10
15
  from . import _utilities
11
16
 
12
17
  __all__ = ['NodeArgs', 'Node']
@@ -107,12 +112,9 @@ Please use the token argument in the provider configuration""")
107
112
 
108
113
  @property
109
114
  @pulumi.getter
110
- def token(self) -> Optional[pulumi.Input[str]]:
111
- warnings.warn("""The token argument has been deprecated and will be removed in a future release.
112
- Please use the token argument in the provider configuration""", DeprecationWarning)
113
- pulumi.log.warn("""token is deprecated: The token argument has been deprecated and will be removed in a future release.
115
+ @_utilities.deprecated("""The token argument has been deprecated and will be removed in a future release.
114
116
  Please use the token argument in the provider configuration""")
115
-
117
+ def token(self) -> Optional[pulumi.Input[str]]:
116
118
  return pulumi.get(self, "token")
117
119
 
118
120
  @token.setter
@@ -217,12 +219,9 @@ Please use the token argument in the provider configuration""")
217
219
 
218
220
  @property
219
221
  @pulumi.getter
220
- def token(self) -> Optional[pulumi.Input[str]]:
221
- warnings.warn("""The token argument has been deprecated and will be removed in a future release.
222
- Please use the token argument in the provider configuration""", DeprecationWarning)
223
- pulumi.log.warn("""token is deprecated: The token argument has been deprecated and will be removed in a future release.
222
+ @_utilities.deprecated("""The token argument has been deprecated and will be removed in a future release.
224
223
  Please use the token argument in the provider configuration""")
225
-
224
+ def token(self) -> Optional[pulumi.Input[str]]:
226
225
  return pulumi.get(self, "token")
227
226
 
228
227
  @token.setter
@@ -252,7 +251,9 @@ class Node(pulumi.CustomResource):
252
251
  import pulumi
253
252
  import pulumi_consul as consul
254
253
 
255
- foobar = consul.Node("foobar", address="192.168.10.10")
254
+ foobar = consul.Node("foobar",
255
+ address="192.168.10.10",
256
+ name="foobar")
256
257
  ```
257
258
 
258
259
  ## Import
@@ -260,7 +261,7 @@ class Node(pulumi.CustomResource):
260
261
  The `consul_node` resource can be imported:
261
262
 
262
263
  ```sh
263
- $ pulumi import consul:index/node:Node example node-name
264
+ $ pulumi import consul:index/node:Node example node-name
264
265
  ```
265
266
 
266
267
  :param str resource_name: The name of the resource.
@@ -287,7 +288,9 @@ class Node(pulumi.CustomResource):
287
288
  import pulumi
288
289
  import pulumi_consul as consul
289
290
 
290
- foobar = consul.Node("foobar", address="192.168.10.10")
291
+ foobar = consul.Node("foobar",
292
+ address="192.168.10.10",
293
+ name="foobar")
291
294
  ```
292
295
 
293
296
  ## Import
@@ -295,7 +298,7 @@ class Node(pulumi.CustomResource):
295
298
  The `consul_node` resource can be imported:
296
299
 
297
300
  ```sh
298
- $ pulumi import consul:index/node:Node example node-name
301
+ $ pulumi import consul:index/node:Node example node-name
299
302
  ```
300
303
 
301
304
  :param str resource_name: The name of the resource.
@@ -421,11 +424,8 @@ class Node(pulumi.CustomResource):
421
424
 
422
425
  @property
423
426
  @pulumi.getter
424
- def token(self) -> pulumi.Output[Optional[str]]:
425
- warnings.warn("""The token argument has been deprecated and will be removed in a future release.
426
- Please use the token argument in the provider configuration""", DeprecationWarning)
427
- pulumi.log.warn("""token is deprecated: The token argument has been deprecated and will be removed in a future release.
427
+ @_utilities.deprecated("""The token argument has been deprecated and will be removed in a future release.
428
428
  Please use the token argument in the provider configuration""")
429
-
429
+ def token(self) -> pulumi.Output[Optional[str]]:
430
430
  return pulumi.get(self, "token")
431
431
 
pulumi_consul/outputs.py CHANGED
@@ -4,9 +4,14 @@
4
4
 
5
5
  import copy
6
6
  import warnings
7
+ import sys
7
8
  import pulumi
8
9
  import pulumi.runtime
9
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
10
15
  from . import _utilities
11
16
  from . import outputs
12
17
 
@@ -1664,7 +1669,7 @@ class ConfigEntryServiceIntentionsSourcePermission(dict):
1664
1669
  action: str,
1665
1670
  https: Sequence['outputs.ConfigEntryServiceIntentionsSourcePermissionHttp']):
1666
1671
  """
1667
- :param str action: Specifies the action to take when the source sends traffic to the destination service.
1672
+ :param str action: Specifies the action to take when the source sends traffic to the destination service. The value is either allow or deny.
1668
1673
  :param Sequence['ConfigEntryServiceIntentionsSourcePermissionHttpArgs'] https: Specifies a set of HTTP-specific match criteria.
1669
1674
  """
1670
1675
  pulumi.set(__self__, "action", action)
@@ -1674,7 +1679,7 @@ class ConfigEntryServiceIntentionsSourcePermission(dict):
1674
1679
  @pulumi.getter
1675
1680
  def action(self) -> str:
1676
1681
  """
1677
- Specifies the action to take when the source sends traffic to the destination service.
1682
+ Specifies the action to take when the source sends traffic to the destination service. The value is either allow or deny.
1678
1683
  """
1679
1684
  return pulumi.get(self, "action")
1680
1685
 
@@ -1786,7 +1791,7 @@ class ConfigEntryServiceIntentionsSourcePermissionHttpHeader(dict):
1786
1791
  regex: Optional[str] = None,
1787
1792
  suffix: Optional[str] = None):
1788
1793
  """
1789
- :param str name: Specifies the name of a JWT provider defined in the Name field of the jwt-provider configuration entry.
1794
+ :param str name: Specifies the name of the header to match.
1790
1795
  :param str exact: Specifies a value for the header key set in the Name field. If the request header value matches the Exact value, Consul applies the permission.
1791
1796
  :param bool invert: Inverts the matching logic configured in the Header.
1792
1797
  :param str prefix: Specifies a prefix value for the header key set in the Name field.
@@ -1812,7 +1817,7 @@ class ConfigEntryServiceIntentionsSourcePermissionHttpHeader(dict):
1812
1817
  @pulumi.getter
1813
1818
  def name(self) -> str:
1814
1819
  """
1815
- Specifies the name of a JWT provider defined in the Name field of the jwt-provider configuration entry.
1820
+ Specifies the name of the header to match.
1816
1821
  """
1817
1822
  return pulumi.get(self, "name")
1818
1823
 
@@ -2004,11 +2009,11 @@ class ConfigEntryServiceResolverFailoverTarget(dict):
2004
2009
  service_subset: Optional[str] = None):
2005
2010
  """
2006
2011
  :param str datacenter: Specifies the WAN federated datacenter to use for the failover target. If empty, the current datacenter is used.
2007
- :param str namespace: Specifies the namespace at the failover location where the failover services are deployed.
2012
+ :param str namespace: Specifies the namespace to use for the failover target. If empty, the default namespace is used.
2008
2013
  :param str partition: Specifies the admin partition within the same datacenter to use for the failover target. If empty, the default partition is used.
2009
2014
  :param str peer: Specifies the destination cluster peer to resolve the target service name from.
2010
- :param str service: Specifies the name of the service to resolve at the failover location during a failover scenario.
2011
- :param str service_subset: Specifies the name of a subset of service instances to resolve at the failover location during a failover scenario.
2015
+ :param str service: Specifies the service name to use for the failover target. If empty, the current service name is used.
2016
+ :param str service_subset: Specifies the named subset to use for the failover target. If empty, the default subset for the requested service name is used.
2012
2017
  """
2013
2018
  if datacenter is not None:
2014
2019
  pulumi.set(__self__, "datacenter", datacenter)
@@ -2035,7 +2040,7 @@ class ConfigEntryServiceResolverFailoverTarget(dict):
2035
2040
  @pulumi.getter
2036
2041
  def namespace(self) -> Optional[str]:
2037
2042
  """
2038
- Specifies the namespace at the failover location where the failover services are deployed.
2043
+ Specifies the namespace to use for the failover target. If empty, the default namespace is used.
2039
2044
  """
2040
2045
  return pulumi.get(self, "namespace")
2041
2046
 
@@ -2059,7 +2064,7 @@ class ConfigEntryServiceResolverFailoverTarget(dict):
2059
2064
  @pulumi.getter
2060
2065
  def service(self) -> Optional[str]:
2061
2066
  """
2062
- Specifies the name of the service to resolve at the failover location during a failover scenario.
2067
+ Specifies the service name to use for the failover target. If empty, the current service name is used.
2063
2068
  """
2064
2069
  return pulumi.get(self, "service")
2065
2070
 
@@ -2067,7 +2072,7 @@ class ConfigEntryServiceResolverFailoverTarget(dict):
2067
2072
  @pulumi.getter(name="serviceSubset")
2068
2073
  def service_subset(self) -> Optional[str]:
2069
2074
  """
2070
- Specifies the name of a subset of service instances to resolve at the failover location during a failover scenario.
2075
+ Specifies the named subset to use for the failover target. If empty, the default subset for the requested service name is used.
2071
2076
  """
2072
2077
  return pulumi.get(self, "service_subset")
2073
2078
 
@@ -2805,9 +2810,9 @@ class ConfigEntryServiceRouterRouteDestinationResponseHeaders(dict):
2805
2810
  removes: Optional[Sequence[str]] = None,
2806
2811
  set: Optional[Mapping[str, str]] = None):
2807
2812
  """
2808
- :param Mapping[str, str] add: Defines a set of key-value pairs to add to the header. Use header names as the keys.
2813
+ :param Mapping[str, str] add: Defines a set of key-value pairs to add to the header. Use header names as the keys
2809
2814
  :param Sequence[str] removes: Defines a list of headers to remove.
2810
- :param Mapping[str, str] set: Defines a set of key-value pairs to add to the request header or to replace existing header values with.
2815
+ :param Mapping[str, str] set: Defines a set of key-value pairs to add to the response header or to replace existing header values with
2811
2816
  """
2812
2817
  if add is not None:
2813
2818
  pulumi.set(__self__, "add", add)
@@ -2820,7 +2825,7 @@ class ConfigEntryServiceRouterRouteDestinationResponseHeaders(dict):
2820
2825
  @pulumi.getter
2821
2826
  def add(self) -> Optional[Mapping[str, str]]:
2822
2827
  """
2823
- Defines a set of key-value pairs to add to the header. Use header names as the keys.
2828
+ Defines a set of key-value pairs to add to the header. Use header names as the keys
2824
2829
  """
2825
2830
  return pulumi.get(self, "add")
2826
2831
 
@@ -2836,7 +2841,7 @@ class ConfigEntryServiceRouterRouteDestinationResponseHeaders(dict):
2836
2841
  @pulumi.getter
2837
2842
  def set(self) -> Optional[Mapping[str, str]]:
2838
2843
  """
2839
- Defines a set of key-value pairs to add to the request header or to replace existing header values with.
2844
+ Defines a set of key-value pairs to add to the response header or to replace existing header values with
2840
2845
  """
2841
2846
  return pulumi.get(self, "set")
2842
2847
 
@@ -3061,10 +3066,10 @@ class ConfigEntryServiceRouterRouteMatchHttpQueryParam(dict):
3061
3066
  present: Optional[bool] = None,
3062
3067
  regex: Optional[str] = None):
3063
3068
  """
3064
- :param str exact: Specifies that a request matches when the header with the given name is this exact value.
3065
- :param str name: Specifies the name of the HTTP header to match.
3066
- :param bool present: Specifies that a request matches when the value in the `name` argument is present anywhere in the HTTP header.
3067
- :param str regex: Specifies that a request matches when the header with the given name matches this regular expression.
3069
+ :param str exact: Specifies that a request matches when the query parameter with the given name is this exact value.
3070
+ :param str name: Specifies the name of the HTTP query parameter to match.
3071
+ :param bool present: Specifies that a request matches when the value in the `name` argument is present anywhere in the HTTP query parameter.
3072
+ :param str regex: Specifies that a request matches when the query parameter with the given name matches this regular expression.
3068
3073
  """
3069
3074
  if exact is not None:
3070
3075
  pulumi.set(__self__, "exact", exact)
@@ -3079,7 +3084,7 @@ class ConfigEntryServiceRouterRouteMatchHttpQueryParam(dict):
3079
3084
  @pulumi.getter
3080
3085
  def exact(self) -> Optional[str]:
3081
3086
  """
3082
- Specifies that a request matches when the header with the given name is this exact value.
3087
+ Specifies that a request matches when the query parameter with the given name is this exact value.
3083
3088
  """
3084
3089
  return pulumi.get(self, "exact")
3085
3090
 
@@ -3087,7 +3092,7 @@ class ConfigEntryServiceRouterRouteMatchHttpQueryParam(dict):
3087
3092
  @pulumi.getter
3088
3093
  def name(self) -> Optional[str]:
3089
3094
  """
3090
- Specifies the name of the HTTP header to match.
3095
+ Specifies the name of the HTTP query parameter to match.
3091
3096
  """
3092
3097
  return pulumi.get(self, "name")
3093
3098
 
@@ -3095,7 +3100,7 @@ class ConfigEntryServiceRouterRouteMatchHttpQueryParam(dict):
3095
3100
  @pulumi.getter
3096
3101
  def present(self) -> Optional[bool]:
3097
3102
  """
3098
- Specifies that a request matches when the value in the `name` argument is present anywhere in the HTTP header.
3103
+ Specifies that a request matches when the value in the `name` argument is present anywhere in the HTTP query parameter.
3099
3104
  """
3100
3105
  return pulumi.get(self, "present")
3101
3106
 
@@ -3103,7 +3108,7 @@ class ConfigEntryServiceRouterRouteMatchHttpQueryParam(dict):
3103
3108
  @pulumi.getter
3104
3109
  def regex(self) -> Optional[str]:
3105
3110
  """
3106
- Specifies that a request matches when the header with the given name matches this regular expression.
3111
+ Specifies that a request matches when the query parameter with the given name matches this regular expression.
3107
3112
  """
3108
3113
  return pulumi.get(self, "regex")
3109
3114
 
@@ -3415,10 +3420,8 @@ class KeysKey(dict):
3415
3420
 
3416
3421
  @property
3417
3422
  @pulumi.getter
3423
+ @_utilities.deprecated("""Using Keys resource to *read* is deprecated; please use Keys data source instead""")
3418
3424
  def name(self) -> Optional[str]:
3419
- warnings.warn("""Using consul_keys resource to *read* is deprecated; please use consul_keys data source instead""", DeprecationWarning)
3420
- pulumi.log.warn("""name is deprecated: Using consul_keys resource to *read* is deprecated; please use consul_keys data source instead""")
3421
-
3422
3425
  return pulumi.get(self, "name")
3423
3426
 
3424
3427
  @property
@@ -3639,7 +3642,7 @@ class ServiceCheck(dict):
3639
3642
  :param str interval: The interval to wait between each health-check invocation.
3640
3643
  :param str name: The name of the health-check.
3641
3644
  :param str timeout: Specifies a timeout for outgoing connections in the case of a HTTP or TCP check.
3642
- :param str deregister_critical_service_after: The time after which the service is automatically deregistered when in the `critical` state. Defaults to `30s`.
3645
+ :param str deregister_critical_service_after: The time after which the service is automatically deregistered when in the `critical` state. Defaults to `30s`. Setting to `0` will disable.
3643
3646
  :param Sequence['ServiceCheckHeaderArgs'] headers: The headers to send for an HTTP check. The attributes of each header is given below.
3644
3647
  :param str http: The HTTP endpoint to call for an HTTP check.
3645
3648
  :param str method: The method to use for HTTP health-checks. Defaults to `GET`.
@@ -3705,7 +3708,7 @@ class ServiceCheck(dict):
3705
3708
  @pulumi.getter(name="deregisterCriticalServiceAfter")
3706
3709
  def deregister_critical_service_after(self) -> Optional[str]:
3707
3710
  """
3708
- The time after which the service is automatically deregistered when in the `critical` state. Defaults to `30s`.
3711
+ The time after which the service is automatically deregistered when in the `critical` state. Defaults to `30s`. Setting to `0` will disable.
3709
3712
  """
3710
3713
  return pulumi.get(self, "deregister_critical_service_after")
3711
3714
 
pulumi_consul/peering.py CHANGED
@@ -4,9 +4,14 @@
4
4
 
5
5
  import copy
6
6
  import warnings
7
+ import sys
7
8
  import pulumi
8
9
  import pulumi.runtime
9
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
10
15
  from . import _utilities
11
16
 
12
17
  __all__ = ['PeeringArgs', 'Peering']
@@ -242,18 +247,13 @@ class Peering(pulumi.CustomResource):
242
247
  import pulumi
243
248
  import pulumi_consul as consul
244
249
 
245
- # Create a peering between the EU and US Consul clusters
246
- eu = consul.Provider("eu", address="eu-cluster:8500")
247
- us = consul.Provider("us", address="us-cluster:8500")
248
- eu_us_peering_token = consul.PeeringToken("eu-usPeeringToken", peer_name="eu-cluster",
249
- opts=pulumi.ResourceOptions(provider=consul["us"]))
250
- eu_us_peering = consul.Peering("eu-usPeering",
250
+ eu_us = consul.PeeringToken("eu-us", peer_name="eu-cluster")
251
+ eu_us_peering = consul.Peering("eu-us",
251
252
  peer_name="eu-cluster",
252
- peering_token=consul_peering_token["token"]["peering_token"],
253
+ peering_token=token["peeringToken"],
253
254
  meta={
254
255
  "hello": "world",
255
- },
256
- opts=pulumi.ResourceOptions(provider=consul["eu"]))
256
+ })
257
257
  ```
258
258
 
259
259
  :param str resource_name: The name of the resource.
@@ -283,18 +283,13 @@ class Peering(pulumi.CustomResource):
283
283
  import pulumi
284
284
  import pulumi_consul as consul
285
285
 
286
- # Create a peering between the EU and US Consul clusters
287
- eu = consul.Provider("eu", address="eu-cluster:8500")
288
- us = consul.Provider("us", address="us-cluster:8500")
289
- eu_us_peering_token = consul.PeeringToken("eu-usPeeringToken", peer_name="eu-cluster",
290
- opts=pulumi.ResourceOptions(provider=consul["us"]))
291
- eu_us_peering = consul.Peering("eu-usPeering",
286
+ eu_us = consul.PeeringToken("eu-us", peer_name="eu-cluster")
287
+ eu_us_peering = consul.Peering("eu-us",
292
288
  peer_name="eu-cluster",
293
- peering_token=consul_peering_token["token"]["peering_token"],
289
+ peering_token=token["peeringToken"],
294
290
  meta={
295
291
  "hello": "world",
296
- },
297
- opts=pulumi.ResourceOptions(provider=consul["eu"]))
292
+ })
298
293
  ```
299
294
 
300
295
  :param str resource_name: The name of the resource.
@@ -4,9 +4,14 @@
4
4
 
5
5
  import copy
6
6
  import warnings
7
+ import sys
7
8
  import pulumi
8
9
  import pulumi.runtime
9
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
10
15
  from . import _utilities
11
16
 
12
17
  __all__ = ['PeeringTokenArgs', 'PeeringToken']
@@ -16,17 +21,21 @@ class PeeringTokenArgs:
16
21
  def __init__(__self__, *,
17
22
  peer_name: pulumi.Input[str],
18
23
  meta: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
19
- partition: Optional[pulumi.Input[str]] = None):
24
+ partition: Optional[pulumi.Input[str]] = None,
25
+ server_external_addresses: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
20
26
  """
21
27
  The set of arguments for constructing a PeeringToken resource.
22
28
  :param pulumi.Input[str] peer_name: The name assigned to the peer cluster. The `peer_name` is used to reference the peer cluster in service discovery queries and configuration entries such as `service-intentions`. This field must be a valid DNS hostname label.
23
29
  :param pulumi.Input[Mapping[str, pulumi.Input[str]]] meta: Specifies KV metadata to associate with the peering. This parameter is not required and does not directly impact the cluster peering process.
30
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] server_external_addresses: The addresses for the cluster that generates the peering token. Addresses take the form {host or IP}:port. You can specify one or more load balancers or external IPs that route external traffic to this cluster's Consul servers.
24
31
  """
25
32
  pulumi.set(__self__, "peer_name", peer_name)
26
33
  if meta is not None:
27
34
  pulumi.set(__self__, "meta", meta)
28
35
  if partition is not None:
29
36
  pulumi.set(__self__, "partition", partition)
37
+ if server_external_addresses is not None:
38
+ pulumi.set(__self__, "server_external_addresses", server_external_addresses)
30
39
 
31
40
  @property
32
41
  @pulumi.getter(name="peerName")
@@ -61,6 +70,18 @@ class PeeringTokenArgs:
61
70
  def partition(self, value: Optional[pulumi.Input[str]]):
62
71
  pulumi.set(self, "partition", value)
63
72
 
73
+ @property
74
+ @pulumi.getter(name="serverExternalAddresses")
75
+ def server_external_addresses(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
76
+ """
77
+ The addresses for the cluster that generates the peering token. Addresses take the form {host or IP}:port. You can specify one or more load balancers or external IPs that route external traffic to this cluster's Consul servers.
78
+ """
79
+ return pulumi.get(self, "server_external_addresses")
80
+
81
+ @server_external_addresses.setter
82
+ def server_external_addresses(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
83
+ pulumi.set(self, "server_external_addresses", value)
84
+
64
85
 
65
86
  @pulumi.input_type
66
87
  class _PeeringTokenState:
@@ -68,12 +89,14 @@ class _PeeringTokenState:
68
89
  meta: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
69
90
  partition: Optional[pulumi.Input[str]] = None,
70
91
  peer_name: Optional[pulumi.Input[str]] = None,
71
- peering_token: Optional[pulumi.Input[str]] = None):
92
+ peering_token: Optional[pulumi.Input[str]] = None,
93
+ server_external_addresses: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
72
94
  """
73
95
  Input properties used for looking up and filtering PeeringToken resources.
74
96
  :param pulumi.Input[Mapping[str, pulumi.Input[str]]] meta: Specifies KV metadata to associate with the peering. This parameter is not required and does not directly impact the cluster peering process.
75
97
  :param pulumi.Input[str] peer_name: The name assigned to the peer cluster. The `peer_name` is used to reference the peer cluster in service discovery queries and configuration entries such as `service-intentions`. This field must be a valid DNS hostname label.
76
98
  :param pulumi.Input[str] peering_token: The generated peering token
99
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] server_external_addresses: The addresses for the cluster that generates the peering token. Addresses take the form {host or IP}:port. You can specify one or more load balancers or external IPs that route external traffic to this cluster's Consul servers.
77
100
  """
78
101
  if meta is not None:
79
102
  pulumi.set(__self__, "meta", meta)
@@ -83,6 +106,8 @@ class _PeeringTokenState:
83
106
  pulumi.set(__self__, "peer_name", peer_name)
84
107
  if peering_token is not None:
85
108
  pulumi.set(__self__, "peering_token", peering_token)
109
+ if server_external_addresses is not None:
110
+ pulumi.set(__self__, "server_external_addresses", server_external_addresses)
86
111
 
87
112
  @property
88
113
  @pulumi.getter
@@ -129,6 +154,18 @@ class _PeeringTokenState:
129
154
  def peering_token(self, value: Optional[pulumi.Input[str]]):
130
155
  pulumi.set(self, "peering_token", value)
131
156
 
157
+ @property
158
+ @pulumi.getter(name="serverExternalAddresses")
159
+ def server_external_addresses(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
160
+ """
161
+ The addresses for the cluster that generates the peering token. Addresses take the form {host or IP}:port. You can specify one or more load balancers or external IPs that route external traffic to this cluster's Consul servers.
162
+ """
163
+ return pulumi.get(self, "server_external_addresses")
164
+
165
+ @server_external_addresses.setter
166
+ def server_external_addresses(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
167
+ pulumi.set(self, "server_external_addresses", value)
168
+
132
169
 
133
170
  class PeeringToken(pulumi.CustomResource):
134
171
  @overload
@@ -138,16 +175,13 @@ class PeeringToken(pulumi.CustomResource):
138
175
  meta: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
139
176
  partition: Optional[pulumi.Input[str]] = None,
140
177
  peer_name: Optional[pulumi.Input[str]] = None,
178
+ server_external_addresses: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
141
179
  __props__=None):
142
180
  """
143
181
  [Cluster Peering](https://www.consul.io/docs/connect/cluster-peering) can be used to create connections between two or more independent clusters so that services deployed to different partitions or datacenters can communicate.
144
182
 
145
183
  The `cluster_peering_token` resource can be used to generate a peering token that can later be used to establish a peering connection.
146
184
 
147
- > **Cluster peering is currently in technical preview:** Functionality associated with cluster peering is subject to change. You should never use the technical preview release in secure environments or production scenarios. Features in technical preview may have performance issues, scaling issues, and limited support.
148
-
149
- The functionality described here is available only in Consul version 1.13.0 and later.
150
-
151
185
  ## Example Usage
152
186
 
153
187
  ```python
@@ -161,6 +195,7 @@ class PeeringToken(pulumi.CustomResource):
161
195
  :param pulumi.ResourceOptions opts: Options for the resource.
162
196
  :param pulumi.Input[Mapping[str, pulumi.Input[str]]] meta: Specifies KV metadata to associate with the peering. This parameter is not required and does not directly impact the cluster peering process.
163
197
  :param pulumi.Input[str] peer_name: The name assigned to the peer cluster. The `peer_name` is used to reference the peer cluster in service discovery queries and configuration entries such as `service-intentions`. This field must be a valid DNS hostname label.
198
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] server_external_addresses: The addresses for the cluster that generates the peering token. Addresses take the form {host or IP}:port. You can specify one or more load balancers or external IPs that route external traffic to this cluster's Consul servers.
164
199
  """
165
200
  ...
166
201
  @overload
@@ -173,10 +208,6 @@ class PeeringToken(pulumi.CustomResource):
173
208
 
174
209
  The `cluster_peering_token` resource can be used to generate a peering token that can later be used to establish a peering connection.
175
210
 
176
- > **Cluster peering is currently in technical preview:** Functionality associated with cluster peering is subject to change. You should never use the technical preview release in secure environments or production scenarios. Features in technical preview may have performance issues, scaling issues, and limited support.
177
-
178
- The functionality described here is available only in Consul version 1.13.0 and later.
179
-
180
211
  ## Example Usage
181
212
 
182
213
  ```python
@@ -204,6 +235,7 @@ class PeeringToken(pulumi.CustomResource):
204
235
  meta: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
205
236
  partition: Optional[pulumi.Input[str]] = None,
206
237
  peer_name: Optional[pulumi.Input[str]] = None,
238
+ server_external_addresses: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
207
239
  __props__=None):
208
240
  opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
209
241
  if not isinstance(opts, pulumi.ResourceOptions):
@@ -218,6 +250,7 @@ class PeeringToken(pulumi.CustomResource):
218
250
  if peer_name is None and not opts.urn:
219
251
  raise TypeError("Missing required property 'peer_name'")
220
252
  __props__.__dict__["peer_name"] = peer_name
253
+ __props__.__dict__["server_external_addresses"] = server_external_addresses
221
254
  __props__.__dict__["peering_token"] = None
222
255
  secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["peeringToken"])
223
256
  opts = pulumi.ResourceOptions.merge(opts, secret_opts)
@@ -234,7 +267,8 @@ class PeeringToken(pulumi.CustomResource):
234
267
  meta: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
235
268
  partition: Optional[pulumi.Input[str]] = None,
236
269
  peer_name: Optional[pulumi.Input[str]] = None,
237
- peering_token: Optional[pulumi.Input[str]] = None) -> 'PeeringToken':
270
+ peering_token: Optional[pulumi.Input[str]] = None,
271
+ server_external_addresses: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None) -> 'PeeringToken':
238
272
  """
239
273
  Get an existing PeeringToken resource's state with the given name, id, and optional extra
240
274
  properties used to qualify the lookup.
@@ -245,6 +279,7 @@ class PeeringToken(pulumi.CustomResource):
245
279
  :param pulumi.Input[Mapping[str, pulumi.Input[str]]] meta: Specifies KV metadata to associate with the peering. This parameter is not required and does not directly impact the cluster peering process.
246
280
  :param pulumi.Input[str] peer_name: The name assigned to the peer cluster. The `peer_name` is used to reference the peer cluster in service discovery queries and configuration entries such as `service-intentions`. This field must be a valid DNS hostname label.
247
281
  :param pulumi.Input[str] peering_token: The generated peering token
282
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] server_external_addresses: The addresses for the cluster that generates the peering token. Addresses take the form {host or IP}:port. You can specify one or more load balancers or external IPs that route external traffic to this cluster's Consul servers.
248
283
  """
249
284
  opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
250
285
 
@@ -254,6 +289,7 @@ class PeeringToken(pulumi.CustomResource):
254
289
  __props__.__dict__["partition"] = partition
255
290
  __props__.__dict__["peer_name"] = peer_name
256
291
  __props__.__dict__["peering_token"] = peering_token
292
+ __props__.__dict__["server_external_addresses"] = server_external_addresses
257
293
  return PeeringToken(resource_name, opts=opts, __props__=__props__)
258
294
 
259
295
  @property
@@ -285,3 +321,11 @@ class PeeringToken(pulumi.CustomResource):
285
321
  """
286
322
  return pulumi.get(self, "peering_token")
287
323
 
324
+ @property
325
+ @pulumi.getter(name="serverExternalAddresses")
326
+ def server_external_addresses(self) -> pulumi.Output[Optional[Sequence[str]]]:
327
+ """
328
+ The addresses for the cluster that generates the peering token. Addresses take the form {host or IP}:port. You can specify one or more load balancers or external IPs that route external traffic to this cluster's Consul servers.
329
+ """
330
+ return pulumi.get(self, "server_external_addresses")
331
+