pulumi-digitalocean 4.39.1__tar.gz → 4.40.0__tar.gz

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.
Files changed (113) hide show
  1. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/PKG-INFO +1 -1
  2. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/_inputs.py +76 -0
  3. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/_utilities.py +8 -4
  4. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/get_kubernetes_cluster.py +19 -3
  5. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/kubernetes_cluster.py +34 -0
  6. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/outputs.py +63 -0
  7. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/pulumi-plugin.json +1 -1
  8. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean.egg-info/PKG-INFO +1 -1
  9. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pyproject.toml +1 -1
  10. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/README.md +0 -0
  11. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/__init__.py +0 -0
  12. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/_enums.py +0 -0
  13. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/app.py +0 -0
  14. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/cdn.py +0 -0
  15. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/certificate.py +0 -0
  16. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/config/__init__.py +0 -0
  17. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/config/__init__.pyi +0 -0
  18. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/config/vars.py +0 -0
  19. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/container_registry.py +0 -0
  20. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/container_registry_docker_credentials.py +0 -0
  21. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/custom_image.py +0 -0
  22. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/database_cluster.py +0 -0
  23. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/database_connection_pool.py +0 -0
  24. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/database_db.py +0 -0
  25. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/database_firewall.py +0 -0
  26. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/database_kafka_config.py +0 -0
  27. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/database_kafka_topic.py +0 -0
  28. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/database_mongodb_config.py +0 -0
  29. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/database_mysql_config.py +0 -0
  30. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/database_opensearch_config.py +0 -0
  31. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/database_postgresql_config.py +0 -0
  32. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/database_redis_config.py +0 -0
  33. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/database_replica.py +0 -0
  34. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/database_user.py +0 -0
  35. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/dns_record.py +0 -0
  36. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/domain.py +0 -0
  37. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/droplet.py +0 -0
  38. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/droplet_autoscale.py +0 -0
  39. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/droplet_snapshot.py +0 -0
  40. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/firewall.py +0 -0
  41. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/floating_ip.py +0 -0
  42. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/floating_ip_assignment.py +0 -0
  43. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/get_account.py +0 -0
  44. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/get_app.py +0 -0
  45. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/get_certificate.py +0 -0
  46. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/get_container_registry.py +0 -0
  47. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/get_database_ca.py +0 -0
  48. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/get_database_cluster.py +0 -0
  49. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/get_database_connection_pool.py +0 -0
  50. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/get_database_replica.py +0 -0
  51. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/get_database_user.py +0 -0
  52. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/get_domain.py +0 -0
  53. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/get_domains.py +0 -0
  54. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/get_droplet.py +0 -0
  55. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/get_droplet_autoscale.py +0 -0
  56. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/get_droplet_snapshot.py +0 -0
  57. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/get_droplets.py +0 -0
  58. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/get_firewall.py +0 -0
  59. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/get_floating_ip.py +0 -0
  60. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/get_image.py +0 -0
  61. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/get_images.py +0 -0
  62. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/get_kubernetes_versions.py +0 -0
  63. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/get_load_balancer.py +0 -0
  64. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/get_project.py +0 -0
  65. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/get_projects.py +0 -0
  66. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/get_record.py +0 -0
  67. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/get_records.py +0 -0
  68. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/get_region.py +0 -0
  69. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/get_regions.py +0 -0
  70. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/get_reserved_ip.py +0 -0
  71. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/get_reserved_ipv6.py +0 -0
  72. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/get_sizes.py +0 -0
  73. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/get_spaces_bucket.py +0 -0
  74. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/get_spaces_bucket_object.py +0 -0
  75. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/get_spaces_bucket_objects.py +0 -0
  76. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/get_spaces_buckets.py +0 -0
  77. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/get_ssh_key.py +0 -0
  78. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/get_ssh_keys.py +0 -0
  79. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/get_tag.py +0 -0
  80. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/get_tags.py +0 -0
  81. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/get_volume.py +0 -0
  82. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/get_volume_snapshot.py +0 -0
  83. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/get_vpc.py +0 -0
  84. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/get_vpc_peering.py +0 -0
  85. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/kubernetes_node_pool.py +0 -0
  86. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/load_balancer.py +0 -0
  87. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/monitor_alert.py +0 -0
  88. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/project.py +0 -0
  89. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/project_resources.py +0 -0
  90. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/provider.py +0 -0
  91. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/py.typed +0 -0
  92. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/reserved_ip.py +0 -0
  93. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/reserved_ip_assignment.py +0 -0
  94. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/reserved_ipv6.py +0 -0
  95. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/reserved_ipv6_assignment.py +0 -0
  96. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/spaces_bucket.py +0 -0
  97. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/spaces_bucket_cors_configuration.py +0 -0
  98. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/spaces_bucket_object.py +0 -0
  99. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/spaces_bucket_policy.py +0 -0
  100. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/ssh_key.py +0 -0
  101. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/tag.py +0 -0
  102. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/uptime_alert.py +0 -0
  103. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/uptime_check.py +0 -0
  104. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/volume.py +0 -0
  105. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/volume_attachment.py +0 -0
  106. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/volume_snapshot.py +0 -0
  107. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/vpc.py +0 -0
  108. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean/vpc_peering.py +0 -0
  109. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean.egg-info/SOURCES.txt +0 -0
  110. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean.egg-info/dependency_links.txt +0 -0
  111. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean.egg-info/requires.txt +0 -0
  112. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/pulumi_digitalocean.egg-info/top_level.txt +0 -0
  113. {pulumi_digitalocean-4.39.1 → pulumi_digitalocean-4.40.0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: pulumi_digitalocean
3
- Version: 4.39.1
3
+ Version: 4.40.0
4
4
  Summary: A Pulumi package for creating and managing DigitalOcean cloud resources.
5
5
  License: Apache-2.0
6
6
  Project-URL: Homepage, https://pulumi.io
@@ -244,6 +244,8 @@ __all__ = [
244
244
  'FirewallOutboundRuleArgsDict',
245
245
  'FirewallPendingChangeArgs',
246
246
  'FirewallPendingChangeArgsDict',
247
+ 'KubernetesClusterClusterAutoscalerConfigurationArgs',
248
+ 'KubernetesClusterClusterAutoscalerConfigurationArgsDict',
247
249
  'KubernetesClusterControlPlaneFirewallArgs',
248
250
  'KubernetesClusterControlPlaneFirewallArgsDict',
249
251
  'KubernetesClusterKubeConfigArgs',
@@ -312,6 +314,8 @@ __all__ = [
312
314
  'GetImagesFilterArgsDict',
313
315
  'GetImagesSortArgs',
314
316
  'GetImagesSortArgsDict',
317
+ 'GetKubernetesClusterClusterAutoscalerConfigurationArgs',
318
+ 'GetKubernetesClusterClusterAutoscalerConfigurationArgsDict',
315
319
  'GetProjectsFilterArgs',
316
320
  'GetProjectsFilterArgsDict',
317
321
  'GetProjectsSortArgs',
@@ -10978,6 +10982,42 @@ class FirewallPendingChangeArgs:
10978
10982
  pulumi.set(self, "status", value)
10979
10983
 
10980
10984
 
10985
+ if not MYPY:
10986
+ class KubernetesClusterClusterAutoscalerConfigurationArgsDict(TypedDict):
10987
+ scale_down_unneeded_time: NotRequired[pulumi.Input[str]]
10988
+ scale_down_utilization_threshold: NotRequired[pulumi.Input[float]]
10989
+ elif False:
10990
+ KubernetesClusterClusterAutoscalerConfigurationArgsDict: TypeAlias = Mapping[str, Any]
10991
+
10992
+ @pulumi.input_type
10993
+ class KubernetesClusterClusterAutoscalerConfigurationArgs:
10994
+ def __init__(__self__, *,
10995
+ scale_down_unneeded_time: Optional[pulumi.Input[str]] = None,
10996
+ scale_down_utilization_threshold: Optional[pulumi.Input[float]] = None):
10997
+ if scale_down_unneeded_time is not None:
10998
+ pulumi.set(__self__, "scale_down_unneeded_time", scale_down_unneeded_time)
10999
+ if scale_down_utilization_threshold is not None:
11000
+ pulumi.set(__self__, "scale_down_utilization_threshold", scale_down_utilization_threshold)
11001
+
11002
+ @property
11003
+ @pulumi.getter(name="scaleDownUnneededTime")
11004
+ def scale_down_unneeded_time(self) -> Optional[pulumi.Input[str]]:
11005
+ return pulumi.get(self, "scale_down_unneeded_time")
11006
+
11007
+ @scale_down_unneeded_time.setter
11008
+ def scale_down_unneeded_time(self, value: Optional[pulumi.Input[str]]):
11009
+ pulumi.set(self, "scale_down_unneeded_time", value)
11010
+
11011
+ @property
11012
+ @pulumi.getter(name="scaleDownUtilizationThreshold")
11013
+ def scale_down_utilization_threshold(self) -> Optional[pulumi.Input[float]]:
11014
+ return pulumi.get(self, "scale_down_utilization_threshold")
11015
+
11016
+ @scale_down_utilization_threshold.setter
11017
+ def scale_down_utilization_threshold(self, value: Optional[pulumi.Input[float]]):
11018
+ pulumi.set(self, "scale_down_utilization_threshold", value)
11019
+
11020
+
10981
11021
  if not MYPY:
10982
11022
  class KubernetesClusterControlPlaneFirewallArgsDict(TypedDict):
10983
11023
  allowed_addresses: pulumi.Input[Sequence[pulumi.Input[str]]]
@@ -14177,6 +14217,42 @@ class GetImagesSortArgs:
14177
14217
  pulumi.set(self, "direction", value)
14178
14218
 
14179
14219
 
14220
+ if not MYPY:
14221
+ class GetKubernetesClusterClusterAutoscalerConfigurationArgsDict(TypedDict):
14222
+ scale_down_unneeded_time: NotRequired[str]
14223
+ scale_down_utilization_threshold: NotRequired[float]
14224
+ elif False:
14225
+ GetKubernetesClusterClusterAutoscalerConfigurationArgsDict: TypeAlias = Mapping[str, Any]
14226
+
14227
+ @pulumi.input_type
14228
+ class GetKubernetesClusterClusterAutoscalerConfigurationArgs:
14229
+ def __init__(__self__, *,
14230
+ scale_down_unneeded_time: Optional[str] = None,
14231
+ scale_down_utilization_threshold: Optional[float] = None):
14232
+ if scale_down_unneeded_time is not None:
14233
+ pulumi.set(__self__, "scale_down_unneeded_time", scale_down_unneeded_time)
14234
+ if scale_down_utilization_threshold is not None:
14235
+ pulumi.set(__self__, "scale_down_utilization_threshold", scale_down_utilization_threshold)
14236
+
14237
+ @property
14238
+ @pulumi.getter(name="scaleDownUnneededTime")
14239
+ def scale_down_unneeded_time(self) -> Optional[str]:
14240
+ return pulumi.get(self, "scale_down_unneeded_time")
14241
+
14242
+ @scale_down_unneeded_time.setter
14243
+ def scale_down_unneeded_time(self, value: Optional[str]):
14244
+ pulumi.set(self, "scale_down_unneeded_time", value)
14245
+
14246
+ @property
14247
+ @pulumi.getter(name="scaleDownUtilizationThreshold")
14248
+ def scale_down_utilization_threshold(self) -> Optional[float]:
14249
+ return pulumi.get(self, "scale_down_utilization_threshold")
14250
+
14251
+ @scale_down_utilization_threshold.setter
14252
+ def scale_down_utilization_threshold(self, value: Optional[float]):
14253
+ pulumi.set(self, "scale_down_utilization_threshold", value)
14254
+
14255
+
14180
14256
  if not MYPY:
14181
14257
  class GetProjectsFilterArgsDict(TypedDict):
14182
14258
  key: str
@@ -89,12 +89,16 @@ def _get_semver_version():
89
89
  elif pep440_version.pre_tag == 'rc':
90
90
  prerelease = f"rc.{pep440_version.pre}"
91
91
  elif pep440_version.dev is not None:
92
+ # PEP440 has explicit support for dev builds, while semver encodes them as "prerelease" versions. To bridge
93
+ # between the two, we convert our dev build version into a prerelease tag. This matches what all of our other
94
+ # packages do when constructing their own semver string.
92
95
  prerelease = f"dev.{pep440_version.dev}"
96
+ elif pep440_version.local is not None:
97
+ # PEP440 only allows a small set of prerelease tags, so when converting an arbitrary prerelease,
98
+ # PypiVersion in /pkg/codegen/python/utilities.go converts it to a local version. Therefore, we need to
99
+ # do the reverse conversion here and set the local version as the prerelease tag.
100
+ prerelease = pep440_version.local
93
101
 
94
- # The only significant difference between PEP440 and semver as it pertains to us is that PEP440 has explicit support
95
- # for dev builds, while semver encodes them as "prerelease" versions. In order to bridge between the two, we convert
96
- # our dev build version into a prerelease tag. This matches what all of our other packages do when constructing
97
- # their own semver string.
98
102
  return SemverVersion(major=major, minor=minor, patch=patch, prerelease=prerelease)
99
103
 
100
104
 
@@ -14,6 +14,7 @@ else:
14
14
  from typing_extensions import NotRequired, TypedDict, TypeAlias
15
15
  from . import _utilities
16
16
  from . import outputs
17
+ from ._inputs import *
17
18
 
18
19
  __all__ = [
19
20
  'GetKubernetesClusterResult',
@@ -27,10 +28,13 @@ class GetKubernetesClusterResult:
27
28
  """
28
29
  A collection of values returned by getKubernetesCluster.
29
30
  """
30
- def __init__(__self__, auto_upgrade=None, cluster_subnet=None, control_plane_firewalls=None, created_at=None, endpoint=None, ha=None, id=None, ipv4_address=None, kube_configs=None, kubeconfig_expire_seconds=None, maintenance_policies=None, name=None, node_pools=None, region=None, service_subnet=None, status=None, surge_upgrade=None, tags=None, updated_at=None, urn=None, version=None, vpc_uuid=None):
31
+ def __init__(__self__, auto_upgrade=None, cluster_autoscaler_configurations=None, cluster_subnet=None, control_plane_firewalls=None, created_at=None, endpoint=None, ha=None, id=None, ipv4_address=None, kube_configs=None, kubeconfig_expire_seconds=None, maintenance_policies=None, name=None, node_pools=None, region=None, service_subnet=None, status=None, surge_upgrade=None, tags=None, updated_at=None, urn=None, version=None, vpc_uuid=None):
31
32
  if auto_upgrade and not isinstance(auto_upgrade, bool):
32
33
  raise TypeError("Expected argument 'auto_upgrade' to be a bool")
33
34
  pulumi.set(__self__, "auto_upgrade", auto_upgrade)
35
+ if cluster_autoscaler_configurations and not isinstance(cluster_autoscaler_configurations, list):
36
+ raise TypeError("Expected argument 'cluster_autoscaler_configurations' to be a list")
37
+ pulumi.set(__self__, "cluster_autoscaler_configurations", cluster_autoscaler_configurations)
34
38
  if cluster_subnet and not isinstance(cluster_subnet, str):
35
39
  raise TypeError("Expected argument 'cluster_subnet' to be a str")
36
40
  pulumi.set(__self__, "cluster_subnet", cluster_subnet)
@@ -103,6 +107,11 @@ class GetKubernetesClusterResult:
103
107
  """
104
108
  return pulumi.get(self, "auto_upgrade")
105
109
 
110
+ @property
111
+ @pulumi.getter(name="clusterAutoscalerConfigurations")
112
+ def cluster_autoscaler_configurations(self) -> Optional[Sequence['outputs.GetKubernetesClusterClusterAutoscalerConfigurationResult']]:
113
+ return pulumi.get(self, "cluster_autoscaler_configurations")
114
+
106
115
  @property
107
116
  @pulumi.getter(name="clusterSubnet")
108
117
  def cluster_subnet(self) -> str:
@@ -267,6 +276,7 @@ class AwaitableGetKubernetesClusterResult(GetKubernetesClusterResult):
267
276
  yield self
268
277
  return GetKubernetesClusterResult(
269
278
  auto_upgrade=self.auto_upgrade,
279
+ cluster_autoscaler_configurations=self.cluster_autoscaler_configurations,
270
280
  cluster_subnet=self.cluster_subnet,
271
281
  control_plane_firewalls=self.control_plane_firewalls,
272
282
  created_at=self.created_at,
@@ -290,7 +300,8 @@ class AwaitableGetKubernetesClusterResult(GetKubernetesClusterResult):
290
300
  vpc_uuid=self.vpc_uuid)
291
301
 
292
302
 
293
- def get_kubernetes_cluster(kubeconfig_expire_seconds: Optional[int] = None,
303
+ def get_kubernetes_cluster(cluster_autoscaler_configurations: Optional[Sequence[Union['GetKubernetesClusterClusterAutoscalerConfigurationArgs', 'GetKubernetesClusterClusterAutoscalerConfigurationArgsDict']]] = None,
304
+ kubeconfig_expire_seconds: Optional[int] = None,
294
305
  name: Optional[str] = None,
295
306
  tags: Optional[Sequence[str]] = None,
296
307
  opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetKubernetesClusterResult:
@@ -311,6 +322,7 @@ def get_kubernetes_cluster(kubeconfig_expire_seconds: Optional[int] = None,
311
322
  :param Sequence[str] tags: A list of tag names applied to the node pool.
312
323
  """
313
324
  __args__ = dict()
325
+ __args__['clusterAutoscalerConfigurations'] = cluster_autoscaler_configurations
314
326
  __args__['kubeconfigExpireSeconds'] = kubeconfig_expire_seconds
315
327
  __args__['name'] = name
316
328
  __args__['tags'] = tags
@@ -319,6 +331,7 @@ def get_kubernetes_cluster(kubeconfig_expire_seconds: Optional[int] = None,
319
331
 
320
332
  return AwaitableGetKubernetesClusterResult(
321
333
  auto_upgrade=pulumi.get(__ret__, 'auto_upgrade'),
334
+ cluster_autoscaler_configurations=pulumi.get(__ret__, 'cluster_autoscaler_configurations'),
322
335
  cluster_subnet=pulumi.get(__ret__, 'cluster_subnet'),
323
336
  control_plane_firewalls=pulumi.get(__ret__, 'control_plane_firewalls'),
324
337
  created_at=pulumi.get(__ret__, 'created_at'),
@@ -340,7 +353,8 @@ def get_kubernetes_cluster(kubeconfig_expire_seconds: Optional[int] = None,
340
353
  urn=pulumi.get(__ret__, 'urn'),
341
354
  version=pulumi.get(__ret__, 'version'),
342
355
  vpc_uuid=pulumi.get(__ret__, 'vpc_uuid'))
343
- def get_kubernetes_cluster_output(kubeconfig_expire_seconds: Optional[pulumi.Input[Optional[int]]] = None,
356
+ def get_kubernetes_cluster_output(cluster_autoscaler_configurations: Optional[pulumi.Input[Optional[Sequence[Union['GetKubernetesClusterClusterAutoscalerConfigurationArgs', 'GetKubernetesClusterClusterAutoscalerConfigurationArgsDict']]]]] = None,
357
+ kubeconfig_expire_seconds: Optional[pulumi.Input[Optional[int]]] = None,
344
358
  name: Optional[pulumi.Input[str]] = None,
345
359
  tags: Optional[pulumi.Input[Optional[Sequence[str]]]] = None,
346
360
  opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetKubernetesClusterResult]:
@@ -361,6 +375,7 @@ def get_kubernetes_cluster_output(kubeconfig_expire_seconds: Optional[pulumi.Inp
361
375
  :param Sequence[str] tags: A list of tag names applied to the node pool.
362
376
  """
363
377
  __args__ = dict()
378
+ __args__['clusterAutoscalerConfigurations'] = cluster_autoscaler_configurations
364
379
  __args__['kubeconfigExpireSeconds'] = kubeconfig_expire_seconds
365
380
  __args__['name'] = name
366
381
  __args__['tags'] = tags
@@ -368,6 +383,7 @@ def get_kubernetes_cluster_output(kubeconfig_expire_seconds: Optional[pulumi.Inp
368
383
  __ret__ = pulumi.runtime.invoke_output('digitalocean:index/getKubernetesCluster:getKubernetesCluster', __args__, opts=opts, typ=GetKubernetesClusterResult)
369
384
  return __ret__.apply(lambda __response__: GetKubernetesClusterResult(
370
385
  auto_upgrade=pulumi.get(__response__, 'auto_upgrade'),
386
+ cluster_autoscaler_configurations=pulumi.get(__response__, 'cluster_autoscaler_configurations'),
371
387
  cluster_subnet=pulumi.get(__response__, 'cluster_subnet'),
372
388
  control_plane_firewalls=pulumi.get(__response__, 'control_plane_firewalls'),
373
389
  created_at=pulumi.get(__response__, 'created_at'),
@@ -26,6 +26,7 @@ class KubernetesClusterArgs:
26
26
  region: pulumi.Input[Union[str, 'Region']],
27
27
  version: pulumi.Input[str],
28
28
  auto_upgrade: Optional[pulumi.Input[bool]] = None,
29
+ cluster_autoscaler_configurations: Optional[pulumi.Input[Sequence[pulumi.Input['KubernetesClusterClusterAutoscalerConfigurationArgs']]]] = None,
29
30
  cluster_subnet: Optional[pulumi.Input[str]] = None,
30
31
  control_plane_firewall: Optional[pulumi.Input['KubernetesClusterControlPlaneFirewallArgs']] = None,
31
32
  destroy_all_associated_resources: Optional[pulumi.Input[bool]] = None,
@@ -63,6 +64,8 @@ class KubernetesClusterArgs:
63
64
  pulumi.set(__self__, "version", version)
64
65
  if auto_upgrade is not None:
65
66
  pulumi.set(__self__, "auto_upgrade", auto_upgrade)
67
+ if cluster_autoscaler_configurations is not None:
68
+ pulumi.set(__self__, "cluster_autoscaler_configurations", cluster_autoscaler_configurations)
66
69
  if cluster_subnet is not None:
67
70
  pulumi.set(__self__, "cluster_subnet", cluster_subnet)
68
71
  if control_plane_firewall is not None:
@@ -136,6 +139,15 @@ class KubernetesClusterArgs:
136
139
  def auto_upgrade(self, value: Optional[pulumi.Input[bool]]):
137
140
  pulumi.set(self, "auto_upgrade", value)
138
141
 
142
+ @property
143
+ @pulumi.getter(name="clusterAutoscalerConfigurations")
144
+ def cluster_autoscaler_configurations(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['KubernetesClusterClusterAutoscalerConfigurationArgs']]]]:
145
+ return pulumi.get(self, "cluster_autoscaler_configurations")
146
+
147
+ @cluster_autoscaler_configurations.setter
148
+ def cluster_autoscaler_configurations(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['KubernetesClusterClusterAutoscalerConfigurationArgs']]]]):
149
+ pulumi.set(self, "cluster_autoscaler_configurations", value)
150
+
139
151
  @property
140
152
  @pulumi.getter(name="clusterSubnet")
141
153
  def cluster_subnet(self) -> Optional[pulumi.Input[str]]:
@@ -284,6 +296,7 @@ class KubernetesClusterArgs:
284
296
  class _KubernetesClusterState:
285
297
  def __init__(__self__, *,
286
298
  auto_upgrade: Optional[pulumi.Input[bool]] = None,
299
+ cluster_autoscaler_configurations: Optional[pulumi.Input[Sequence[pulumi.Input['KubernetesClusterClusterAutoscalerConfigurationArgs']]]] = None,
287
300
  cluster_subnet: Optional[pulumi.Input[str]] = None,
288
301
  cluster_urn: Optional[pulumi.Input[str]] = None,
289
302
  control_plane_firewall: Optional[pulumi.Input['KubernetesClusterControlPlaneFirewallArgs']] = None,
@@ -335,6 +348,8 @@ class _KubernetesClusterState:
335
348
  """
336
349
  if auto_upgrade is not None:
337
350
  pulumi.set(__self__, "auto_upgrade", auto_upgrade)
351
+ if cluster_autoscaler_configurations is not None:
352
+ pulumi.set(__self__, "cluster_autoscaler_configurations", cluster_autoscaler_configurations)
338
353
  if cluster_subnet is not None:
339
354
  pulumi.set(__self__, "cluster_subnet", cluster_subnet)
340
355
  if cluster_urn is not None:
@@ -392,6 +407,15 @@ class _KubernetesClusterState:
392
407
  def auto_upgrade(self, value: Optional[pulumi.Input[bool]]):
393
408
  pulumi.set(self, "auto_upgrade", value)
394
409
 
410
+ @property
411
+ @pulumi.getter(name="clusterAutoscalerConfigurations")
412
+ def cluster_autoscaler_configurations(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['KubernetesClusterClusterAutoscalerConfigurationArgs']]]]:
413
+ return pulumi.get(self, "cluster_autoscaler_configurations")
414
+
415
+ @cluster_autoscaler_configurations.setter
416
+ def cluster_autoscaler_configurations(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['KubernetesClusterClusterAutoscalerConfigurationArgs']]]]):
417
+ pulumi.set(self, "cluster_autoscaler_configurations", value)
418
+
395
419
  @property
396
420
  @pulumi.getter(name="clusterSubnet")
397
421
  def cluster_subnet(self) -> Optional[pulumi.Input[str]]:
@@ -662,6 +686,7 @@ class KubernetesCluster(pulumi.CustomResource):
662
686
  resource_name: str,
663
687
  opts: Optional[pulumi.ResourceOptions] = None,
664
688
  auto_upgrade: Optional[pulumi.Input[bool]] = None,
689
+ cluster_autoscaler_configurations: Optional[pulumi.Input[Sequence[pulumi.Input[Union['KubernetesClusterClusterAutoscalerConfigurationArgs', 'KubernetesClusterClusterAutoscalerConfigurationArgsDict']]]]] = None,
665
690
  cluster_subnet: Optional[pulumi.Input[str]] = None,
666
691
  control_plane_firewall: Optional[pulumi.Input[Union['KubernetesClusterControlPlaneFirewallArgs', 'KubernetesClusterControlPlaneFirewallArgsDict']]] = None,
667
692
  destroy_all_associated_resources: Optional[pulumi.Input[bool]] = None,
@@ -774,6 +799,7 @@ class KubernetesCluster(pulumi.CustomResource):
774
799
  resource_name: str,
775
800
  opts: Optional[pulumi.ResourceOptions] = None,
776
801
  auto_upgrade: Optional[pulumi.Input[bool]] = None,
802
+ cluster_autoscaler_configurations: Optional[pulumi.Input[Sequence[pulumi.Input[Union['KubernetesClusterClusterAutoscalerConfigurationArgs', 'KubernetesClusterClusterAutoscalerConfigurationArgsDict']]]]] = None,
777
803
  cluster_subnet: Optional[pulumi.Input[str]] = None,
778
804
  control_plane_firewall: Optional[pulumi.Input[Union['KubernetesClusterControlPlaneFirewallArgs', 'KubernetesClusterControlPlaneFirewallArgsDict']]] = None,
779
805
  destroy_all_associated_resources: Optional[pulumi.Input[bool]] = None,
@@ -799,6 +825,7 @@ class KubernetesCluster(pulumi.CustomResource):
799
825
  __props__ = KubernetesClusterArgs.__new__(KubernetesClusterArgs)
800
826
 
801
827
  __props__.__dict__["auto_upgrade"] = auto_upgrade
828
+ __props__.__dict__["cluster_autoscaler_configurations"] = cluster_autoscaler_configurations
802
829
  __props__.__dict__["cluster_subnet"] = cluster_subnet
803
830
  __props__.__dict__["control_plane_firewall"] = control_plane_firewall
804
831
  __props__.__dict__["destroy_all_associated_resources"] = destroy_all_associated_resources
@@ -840,6 +867,7 @@ class KubernetesCluster(pulumi.CustomResource):
840
867
  id: pulumi.Input[str],
841
868
  opts: Optional[pulumi.ResourceOptions] = None,
842
869
  auto_upgrade: Optional[pulumi.Input[bool]] = None,
870
+ cluster_autoscaler_configurations: Optional[pulumi.Input[Sequence[pulumi.Input[Union['KubernetesClusterClusterAutoscalerConfigurationArgs', 'KubernetesClusterClusterAutoscalerConfigurationArgsDict']]]]] = None,
843
871
  cluster_subnet: Optional[pulumi.Input[str]] = None,
844
872
  cluster_urn: Optional[pulumi.Input[str]] = None,
845
873
  control_plane_firewall: Optional[pulumi.Input[Union['KubernetesClusterControlPlaneFirewallArgs', 'KubernetesClusterControlPlaneFirewallArgsDict']]] = None,
@@ -899,6 +927,7 @@ class KubernetesCluster(pulumi.CustomResource):
899
927
  __props__ = _KubernetesClusterState.__new__(_KubernetesClusterState)
900
928
 
901
929
  __props__.__dict__["auto_upgrade"] = auto_upgrade
930
+ __props__.__dict__["cluster_autoscaler_configurations"] = cluster_autoscaler_configurations
902
931
  __props__.__dict__["cluster_subnet"] = cluster_subnet
903
932
  __props__.__dict__["cluster_urn"] = cluster_urn
904
933
  __props__.__dict__["control_plane_firewall"] = control_plane_firewall
@@ -931,6 +960,11 @@ class KubernetesCluster(pulumi.CustomResource):
931
960
  """
932
961
  return pulumi.get(self, "auto_upgrade")
933
962
 
963
+ @property
964
+ @pulumi.getter(name="clusterAutoscalerConfigurations")
965
+ def cluster_autoscaler_configurations(self) -> pulumi.Output[Optional[Sequence['outputs.KubernetesClusterClusterAutoscalerConfiguration']]]:
966
+ return pulumi.get(self, "cluster_autoscaler_configurations")
967
+
934
968
  @property
935
969
  @pulumi.getter(name="clusterSubnet")
936
970
  def cluster_subnet(self) -> pulumi.Output[str]:
@@ -131,6 +131,7 @@ __all__ = [
131
131
  'FirewallInboundRule',
132
132
  'FirewallOutboundRule',
133
133
  'FirewallPendingChange',
134
+ 'KubernetesClusterClusterAutoscalerConfiguration',
134
135
  'KubernetesClusterControlPlaneFirewall',
135
136
  'KubernetesClusterKubeConfig',
136
137
  'KubernetesClusterMaintenancePolicy',
@@ -273,6 +274,7 @@ __all__ = [
273
274
  'GetImagesFilterResult',
274
275
  'GetImagesImageResult',
275
276
  'GetImagesSortResult',
277
+ 'GetKubernetesClusterClusterAutoscalerConfigurationResult',
276
278
  'GetKubernetesClusterControlPlaneFirewallResult',
277
279
  'GetKubernetesClusterKubeConfigResult',
278
280
  'GetKubernetesClusterMaintenancePolicyResult',
@@ -8043,6 +8045,46 @@ class FirewallPendingChange(dict):
8043
8045
  return pulumi.get(self, "status")
8044
8046
 
8045
8047
 
8048
+ @pulumi.output_type
8049
+ class KubernetesClusterClusterAutoscalerConfiguration(dict):
8050
+ @staticmethod
8051
+ def __key_warning(key: str):
8052
+ suggest = None
8053
+ if key == "scaleDownUnneededTime":
8054
+ suggest = "scale_down_unneeded_time"
8055
+ elif key == "scaleDownUtilizationThreshold":
8056
+ suggest = "scale_down_utilization_threshold"
8057
+
8058
+ if suggest:
8059
+ pulumi.log.warn(f"Key '{key}' not found in KubernetesClusterClusterAutoscalerConfiguration. Access the value via the '{suggest}' property getter instead.")
8060
+
8061
+ def __getitem__(self, key: str) -> Any:
8062
+ KubernetesClusterClusterAutoscalerConfiguration.__key_warning(key)
8063
+ return super().__getitem__(key)
8064
+
8065
+ def get(self, key: str, default = None) -> Any:
8066
+ KubernetesClusterClusterAutoscalerConfiguration.__key_warning(key)
8067
+ return super().get(key, default)
8068
+
8069
+ def __init__(__self__, *,
8070
+ scale_down_unneeded_time: Optional[str] = None,
8071
+ scale_down_utilization_threshold: Optional[float] = None):
8072
+ if scale_down_unneeded_time is not None:
8073
+ pulumi.set(__self__, "scale_down_unneeded_time", scale_down_unneeded_time)
8074
+ if scale_down_utilization_threshold is not None:
8075
+ pulumi.set(__self__, "scale_down_utilization_threshold", scale_down_utilization_threshold)
8076
+
8077
+ @property
8078
+ @pulumi.getter(name="scaleDownUnneededTime")
8079
+ def scale_down_unneeded_time(self) -> Optional[str]:
8080
+ return pulumi.get(self, "scale_down_unneeded_time")
8081
+
8082
+ @property
8083
+ @pulumi.getter(name="scaleDownUtilizationThreshold")
8084
+ def scale_down_utilization_threshold(self) -> Optional[float]:
8085
+ return pulumi.get(self, "scale_down_utilization_threshold")
8086
+
8087
+
8046
8088
  @pulumi.output_type
8047
8089
  class KubernetesClusterControlPlaneFirewall(dict):
8048
8090
  @staticmethod
@@ -16174,6 +16216,27 @@ class GetImagesSortResult(dict):
16174
16216
  return pulumi.get(self, "direction")
16175
16217
 
16176
16218
 
16219
+ @pulumi.output_type
16220
+ class GetKubernetesClusterClusterAutoscalerConfigurationResult(dict):
16221
+ def __init__(__self__, *,
16222
+ scale_down_unneeded_time: Optional[str] = None,
16223
+ scale_down_utilization_threshold: Optional[float] = None):
16224
+ if scale_down_unneeded_time is not None:
16225
+ pulumi.set(__self__, "scale_down_unneeded_time", scale_down_unneeded_time)
16226
+ if scale_down_utilization_threshold is not None:
16227
+ pulumi.set(__self__, "scale_down_utilization_threshold", scale_down_utilization_threshold)
16228
+
16229
+ @property
16230
+ @pulumi.getter(name="scaleDownUnneededTime")
16231
+ def scale_down_unneeded_time(self) -> Optional[str]:
16232
+ return pulumi.get(self, "scale_down_unneeded_time")
16233
+
16234
+ @property
16235
+ @pulumi.getter(name="scaleDownUtilizationThreshold")
16236
+ def scale_down_utilization_threshold(self) -> Optional[float]:
16237
+ return pulumi.get(self, "scale_down_utilization_threshold")
16238
+
16239
+
16177
16240
  @pulumi.output_type
16178
16241
  class GetKubernetesClusterControlPlaneFirewallResult(dict):
16179
16242
  def __init__(__self__, *,
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "resource": true,
3
3
  "name": "digitalocean",
4
- "version": "4.39.1"
4
+ "version": "4.40.0"
5
5
  }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: pulumi_digitalocean
3
- Version: 4.39.1
3
+ Version: 4.40.0
4
4
  Summary: A Pulumi package for creating and managing DigitalOcean cloud resources.
5
5
  License: Apache-2.0
6
6
  Project-URL: Homepage, https://pulumi.io
@@ -5,7 +5,7 @@
5
5
  keywords = ["pulumi", "digitalocean"]
6
6
  readme = "README.md"
7
7
  requires-python = ">=3.9"
8
- version = "4.39.1"
8
+ version = "4.40.0"
9
9
  [project.license]
10
10
  text = "Apache-2.0"
11
11
  [project.urls]