pulumi-alicloud 3.73.0a1736832142__py3-none-any.whl → 3.73.0a1736949061__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-alicloud might be problematic. Click here for more details.

Files changed (78) hide show
  1. pulumi_alicloud/__init__.py +59 -0
  2. pulumi_alicloud/alb/__init__.py +1 -0
  3. pulumi_alicloud/alb/_inputs.py +6 -6
  4. pulumi_alicloud/alb/a_script.py +116 -98
  5. pulumi_alicloud/alb/load_balancer_access_log_config_attachment.py +303 -0
  6. pulumi_alicloud/alb/outputs.py +4 -4
  7. pulumi_alicloud/alikafka/instance.py +188 -70
  8. pulumi_alicloud/amqp/instance.py +77 -28
  9. pulumi_alicloud/bastionhost/_inputs.py +40 -38
  10. pulumi_alicloud/bastionhost/get_instances.py +6 -22
  11. pulumi_alicloud/bastionhost/outputs.py +60 -49
  12. pulumi_alicloud/cen/instance_grant.py +4 -0
  13. pulumi_alicloud/cloudcontrol/__init__.py +12 -0
  14. pulumi_alicloud/cloudcontrol/get_prices.py +199 -0
  15. pulumi_alicloud/cloudcontrol/get_products.py +187 -0
  16. pulumi_alicloud/cloudcontrol/get_resource_types.py +178 -0
  17. pulumi_alicloud/cloudcontrol/outputs.py +688 -0
  18. pulumi_alicloud/cloudcontrol/resource.py +407 -0
  19. pulumi_alicloud/cms/_inputs.py +21 -15
  20. pulumi_alicloud/cms/alarm.py +7 -7
  21. pulumi_alicloud/cms/outputs.py +14 -10
  22. pulumi_alicloud/cs/get_edge_kubernetes_clusters.py +4 -2
  23. pulumi_alicloud/cs/get_managed_kubernetes_clusters.py +2 -0
  24. pulumi_alicloud/cs/kubernetes.py +14 -14
  25. pulumi_alicloud/cs/managed_kubernetes.py +137 -47
  26. pulumi_alicloud/dataworks/__init__.py +4 -0
  27. pulumi_alicloud/dataworks/_inputs.py +1534 -0
  28. pulumi_alicloud/dataworks/di_alarm_rule.py +708 -0
  29. pulumi_alicloud/dataworks/di_job.py +1005 -0
  30. pulumi_alicloud/dataworks/dw_resource_group.py +703 -0
  31. pulumi_alicloud/dataworks/network.py +331 -0
  32. pulumi_alicloud/dataworks/outputs.py +1247 -0
  33. pulumi_alicloud/dcdn/waf_rule.py +14 -14
  34. pulumi_alicloud/dns/get_alidns_domains.py +7 -2
  35. pulumi_alicloud/dns/outputs.py +8 -0
  36. pulumi_alicloud/ecs/ecs_launch_template.py +122 -0
  37. pulumi_alicloud/ecs/ecs_network_interface.py +14 -14
  38. pulumi_alicloud/ecs/ecs_session_manager_status.py +18 -18
  39. pulumi_alicloud/ecs/instance.py +7 -7
  40. pulumi_alicloud/ecs/launch_template.py +88 -0
  41. pulumi_alicloud/fc/custom_domain.py +2 -2
  42. pulumi_alicloud/fc/function.py +32 -4
  43. pulumi_alicloud/fc/v2_function.py +20 -0
  44. pulumi_alicloud/hbr/__init__.py +1 -0
  45. pulumi_alicloud/hbr/cross_account.py +338 -0
  46. pulumi_alicloud/ims/oidc_provider.py +28 -0
  47. pulumi_alicloud/log/resource_record.py +42 -26
  48. pulumi_alicloud/message/service_queue.py +106 -59
  49. pulumi_alicloud/message/service_topic.py +182 -37
  50. pulumi_alicloud/mongodb/account.py +138 -163
  51. pulumi_alicloud/oos/secret_parameter.py +84 -9
  52. pulumi_alicloud/oss/bucket.py +1 -1
  53. pulumi_alicloud/oss/bucket_policy.py +2 -4
  54. pulumi_alicloud/oss/bucket_referer.py +2 -4
  55. pulumi_alicloud/oss/get_buckets.py +16 -2
  56. pulumi_alicloud/oss/outputs.py +18 -17
  57. pulumi_alicloud/pulumi-plugin.json +1 -1
  58. pulumi_alicloud/sae/application.py +84 -7
  59. pulumi_alicloud/sls/collection_policy.py +2 -2
  60. pulumi_alicloud/vpc/__init__.py +5 -0
  61. pulumi_alicloud/vpc/get_ipam_ipam_pool_allocations.py +295 -0
  62. pulumi_alicloud/vpc/get_ipam_ipam_pool_cidrs.py +196 -0
  63. pulumi_alicloud/vpc/get_ipam_ipam_pools.py +353 -0
  64. pulumi_alicloud/vpc/get_ipam_ipam_scopes.py +333 -0
  65. pulumi_alicloud/vpc/get_ipam_ipams.py +291 -0
  66. pulumi_alicloud/vpc/get_networks.py +3 -0
  67. pulumi_alicloud/vpc/nat_gateway.py +145 -7
  68. pulumi_alicloud/vpc/outputs.py +777 -0
  69. pulumi_alicloud/vpc/snat_entry.py +107 -48
  70. pulumi_alicloud/vpn/_inputs.py +96 -72
  71. pulumi_alicloud/vpn/connection.py +24 -28
  72. pulumi_alicloud/vpn/outputs.py +64 -48
  73. pulumi_alicloud/yundun/_inputs.py +26 -24
  74. pulumi_alicloud/yundun/outputs.py +37 -22
  75. {pulumi_alicloud-3.73.0a1736832142.dist-info → pulumi_alicloud-3.73.0a1736949061.dist-info}/METADATA +1 -1
  76. {pulumi_alicloud-3.73.0a1736832142.dist-info → pulumi_alicloud-3.73.0a1736949061.dist-info}/RECORD +78 -61
  77. {pulumi_alicloud-3.73.0a1736832142.dist-info → pulumi_alicloud-3.73.0a1736949061.dist-info}/WHEEL +0 -0
  78. {pulumi_alicloud-3.73.0a1736832142.dist-info → pulumi_alicloud-3.73.0a1736949061.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,291 @@
1
+ # coding=utf-8
2
+ # *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
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 . import outputs
17
+
18
+ __all__ = [
19
+ 'GetIpamIpamsResult',
20
+ 'AwaitableGetIpamIpamsResult',
21
+ 'get_ipam_ipams',
22
+ 'get_ipam_ipams_output',
23
+ ]
24
+
25
+ @pulumi.output_type
26
+ class GetIpamIpamsResult:
27
+ """
28
+ A collection of values returned by getIpamIpams.
29
+ """
30
+ def __init__(__self__, id=None, ids=None, ipam_id=None, ipam_name=None, ipams=None, name_regex=None, names=None, output_file=None, resource_group_id=None, tags=None):
31
+ if id and not isinstance(id, str):
32
+ raise TypeError("Expected argument 'id' to be a str")
33
+ pulumi.set(__self__, "id", id)
34
+ if ids and not isinstance(ids, list):
35
+ raise TypeError("Expected argument 'ids' to be a list")
36
+ pulumi.set(__self__, "ids", ids)
37
+ if ipam_id and not isinstance(ipam_id, str):
38
+ raise TypeError("Expected argument 'ipam_id' to be a str")
39
+ pulumi.set(__self__, "ipam_id", ipam_id)
40
+ if ipam_name and not isinstance(ipam_name, str):
41
+ raise TypeError("Expected argument 'ipam_name' to be a str")
42
+ pulumi.set(__self__, "ipam_name", ipam_name)
43
+ if ipams and not isinstance(ipams, list):
44
+ raise TypeError("Expected argument 'ipams' to be a list")
45
+ pulumi.set(__self__, "ipams", ipams)
46
+ if name_regex and not isinstance(name_regex, str):
47
+ raise TypeError("Expected argument 'name_regex' to be a str")
48
+ pulumi.set(__self__, "name_regex", name_regex)
49
+ if names and not isinstance(names, list):
50
+ raise TypeError("Expected argument 'names' to be a list")
51
+ pulumi.set(__self__, "names", names)
52
+ if output_file and not isinstance(output_file, str):
53
+ raise TypeError("Expected argument 'output_file' to be a str")
54
+ pulumi.set(__self__, "output_file", output_file)
55
+ if resource_group_id and not isinstance(resource_group_id, str):
56
+ raise TypeError("Expected argument 'resource_group_id' to be a str")
57
+ pulumi.set(__self__, "resource_group_id", resource_group_id)
58
+ if tags and not isinstance(tags, dict):
59
+ raise TypeError("Expected argument 'tags' to be a dict")
60
+ pulumi.set(__self__, "tags", tags)
61
+
62
+ @property
63
+ @pulumi.getter
64
+ def id(self) -> str:
65
+ """
66
+ The provider-assigned unique ID for this managed resource.
67
+ """
68
+ return pulumi.get(self, "id")
69
+
70
+ @property
71
+ @pulumi.getter
72
+ def ids(self) -> Sequence[str]:
73
+ """
74
+ A list of Ipam IDs.
75
+ """
76
+ return pulumi.get(self, "ids")
77
+
78
+ @property
79
+ @pulumi.getter(name="ipamId")
80
+ def ipam_id(self) -> Optional[str]:
81
+ """
82
+ The first ID of the resource.
83
+ """
84
+ return pulumi.get(self, "ipam_id")
85
+
86
+ @property
87
+ @pulumi.getter(name="ipamName")
88
+ def ipam_name(self) -> Optional[str]:
89
+ """
90
+ The name of the resource.
91
+ """
92
+ return pulumi.get(self, "ipam_name")
93
+
94
+ @property
95
+ @pulumi.getter
96
+ def ipams(self) -> Sequence['outputs.GetIpamIpamsIpamResult']:
97
+ """
98
+ A list of Ipam Entries. Each element contains the following attributes:
99
+ """
100
+ return pulumi.get(self, "ipams")
101
+
102
+ @property
103
+ @pulumi.getter(name="nameRegex")
104
+ def name_regex(self) -> Optional[str]:
105
+ return pulumi.get(self, "name_regex")
106
+
107
+ @property
108
+ @pulumi.getter
109
+ def names(self) -> Sequence[str]:
110
+ """
111
+ A list of name of Ipams.
112
+ """
113
+ return pulumi.get(self, "names")
114
+
115
+ @property
116
+ @pulumi.getter(name="outputFile")
117
+ def output_file(self) -> Optional[str]:
118
+ return pulumi.get(self, "output_file")
119
+
120
+ @property
121
+ @pulumi.getter(name="resourceGroupId")
122
+ def resource_group_id(self) -> Optional[str]:
123
+ """
124
+ The ID of the resource group.
125
+ """
126
+ return pulumi.get(self, "resource_group_id")
127
+
128
+ @property
129
+ @pulumi.getter
130
+ def tags(self) -> Optional[Mapping[str, str]]:
131
+ """
132
+ The tag of the resource.
133
+ """
134
+ return pulumi.get(self, "tags")
135
+
136
+
137
+ class AwaitableGetIpamIpamsResult(GetIpamIpamsResult):
138
+ # pylint: disable=using-constant-test
139
+ def __await__(self):
140
+ if False:
141
+ yield self
142
+ return GetIpamIpamsResult(
143
+ id=self.id,
144
+ ids=self.ids,
145
+ ipam_id=self.ipam_id,
146
+ ipam_name=self.ipam_name,
147
+ ipams=self.ipams,
148
+ name_regex=self.name_regex,
149
+ names=self.names,
150
+ output_file=self.output_file,
151
+ resource_group_id=self.resource_group_id,
152
+ tags=self.tags)
153
+
154
+
155
+ def get_ipam_ipams(ids: Optional[Sequence[str]] = None,
156
+ ipam_id: Optional[str] = None,
157
+ ipam_name: Optional[str] = None,
158
+ name_regex: Optional[str] = None,
159
+ output_file: Optional[str] = None,
160
+ resource_group_id: Optional[str] = None,
161
+ tags: Optional[Mapping[str, str]] = None,
162
+ opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetIpamIpamsResult:
163
+ """
164
+ This data source provides Vpc Ipam Ipam available to the user.[What is Ipam](https://www.alibabacloud.com/help/en/)
165
+
166
+ > **NOTE:** Available since v1.241.0.
167
+
168
+ ## Example Usage
169
+
170
+ ```python
171
+ import pulumi
172
+ import pulumi_alicloud as alicloud
173
+
174
+ config = pulumi.Config()
175
+ name = config.get("name")
176
+ if name is None:
177
+ name = "terraform-example"
178
+ default = alicloud.resourcemanager.get_resource_groups()
179
+ default_ipam_ipam = alicloud.vpc.IpamIpam("default",
180
+ ipam_description="This is my first Ipam.",
181
+ ipam_name=name,
182
+ operating_region_lists=["cn-hangzhou"])
183
+ default_get_ipam_ipams = pulumi.Output.all(
184
+ id=default_ipam_ipam.id,
185
+ ipam_name=default_ipam_ipam.ipam_name
186
+ ).apply(lambda resolved_outputs: alicloud.vpc.get_ipam_ipams_output(ids=[resolved_outputs['id']],
187
+ name_regex=resolved_outputs['ipam_name'],
188
+ ipam_name=name))
189
+
190
+ pulumi.export("alicloudVpcIpamIpamExampleId", default_get_ipam_ipams.ipams[0].id)
191
+ ```
192
+
193
+
194
+ :param Sequence[str] ids: A list of Ipam IDs.
195
+ :param str ipam_id: The first ID of the resource.
196
+ :param str ipam_name: The name of the resource.
197
+ :param str name_regex: A regex string to filter results by Group Metric Rule name.
198
+ :param str output_file: File name where to save data source results (after running `pulumi preview`).
199
+ :param str resource_group_id: The ID of the resource group.
200
+ :param Mapping[str, str] tags: The tag of the resource.
201
+ """
202
+ __args__ = dict()
203
+ __args__['ids'] = ids
204
+ __args__['ipamId'] = ipam_id
205
+ __args__['ipamName'] = ipam_name
206
+ __args__['nameRegex'] = name_regex
207
+ __args__['outputFile'] = output_file
208
+ __args__['resourceGroupId'] = resource_group_id
209
+ __args__['tags'] = tags
210
+ opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
211
+ __ret__ = pulumi.runtime.invoke('alicloud:vpc/getIpamIpams:getIpamIpams', __args__, opts=opts, typ=GetIpamIpamsResult).value
212
+
213
+ return AwaitableGetIpamIpamsResult(
214
+ id=pulumi.get(__ret__, 'id'),
215
+ ids=pulumi.get(__ret__, 'ids'),
216
+ ipam_id=pulumi.get(__ret__, 'ipam_id'),
217
+ ipam_name=pulumi.get(__ret__, 'ipam_name'),
218
+ ipams=pulumi.get(__ret__, 'ipams'),
219
+ name_regex=pulumi.get(__ret__, 'name_regex'),
220
+ names=pulumi.get(__ret__, 'names'),
221
+ output_file=pulumi.get(__ret__, 'output_file'),
222
+ resource_group_id=pulumi.get(__ret__, 'resource_group_id'),
223
+ tags=pulumi.get(__ret__, 'tags'))
224
+ def get_ipam_ipams_output(ids: Optional[pulumi.Input[Optional[Sequence[str]]]] = None,
225
+ ipam_id: Optional[pulumi.Input[Optional[str]]] = None,
226
+ ipam_name: Optional[pulumi.Input[Optional[str]]] = None,
227
+ name_regex: Optional[pulumi.Input[Optional[str]]] = None,
228
+ output_file: Optional[pulumi.Input[Optional[str]]] = None,
229
+ resource_group_id: Optional[pulumi.Input[Optional[str]]] = None,
230
+ tags: Optional[pulumi.Input[Optional[Mapping[str, str]]]] = None,
231
+ opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetIpamIpamsResult]:
232
+ """
233
+ This data source provides Vpc Ipam Ipam available to the user.[What is Ipam](https://www.alibabacloud.com/help/en/)
234
+
235
+ > **NOTE:** Available since v1.241.0.
236
+
237
+ ## Example Usage
238
+
239
+ ```python
240
+ import pulumi
241
+ import pulumi_alicloud as alicloud
242
+
243
+ config = pulumi.Config()
244
+ name = config.get("name")
245
+ if name is None:
246
+ name = "terraform-example"
247
+ default = alicloud.resourcemanager.get_resource_groups()
248
+ default_ipam_ipam = alicloud.vpc.IpamIpam("default",
249
+ ipam_description="This is my first Ipam.",
250
+ ipam_name=name,
251
+ operating_region_lists=["cn-hangzhou"])
252
+ default_get_ipam_ipams = pulumi.Output.all(
253
+ id=default_ipam_ipam.id,
254
+ ipam_name=default_ipam_ipam.ipam_name
255
+ ).apply(lambda resolved_outputs: alicloud.vpc.get_ipam_ipams_output(ids=[resolved_outputs['id']],
256
+ name_regex=resolved_outputs['ipam_name'],
257
+ ipam_name=name))
258
+
259
+ pulumi.export("alicloudVpcIpamIpamExampleId", default_get_ipam_ipams.ipams[0].id)
260
+ ```
261
+
262
+
263
+ :param Sequence[str] ids: A list of Ipam IDs.
264
+ :param str ipam_id: The first ID of the resource.
265
+ :param str ipam_name: The name of the resource.
266
+ :param str name_regex: A regex string to filter results by Group Metric Rule name.
267
+ :param str output_file: File name where to save data source results (after running `pulumi preview`).
268
+ :param str resource_group_id: The ID of the resource group.
269
+ :param Mapping[str, str] tags: The tag of the resource.
270
+ """
271
+ __args__ = dict()
272
+ __args__['ids'] = ids
273
+ __args__['ipamId'] = ipam_id
274
+ __args__['ipamName'] = ipam_name
275
+ __args__['nameRegex'] = name_regex
276
+ __args__['outputFile'] = output_file
277
+ __args__['resourceGroupId'] = resource_group_id
278
+ __args__['tags'] = tags
279
+ opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
280
+ __ret__ = pulumi.runtime.invoke_output('alicloud:vpc/getIpamIpams:getIpamIpams', __args__, opts=opts, typ=GetIpamIpamsResult)
281
+ return __ret__.apply(lambda __response__: GetIpamIpamsResult(
282
+ id=pulumi.get(__response__, 'id'),
283
+ ids=pulumi.get(__response__, 'ids'),
284
+ ipam_id=pulumi.get(__response__, 'ipam_id'),
285
+ ipam_name=pulumi.get(__response__, 'ipam_name'),
286
+ ipams=pulumi.get(__response__, 'ipams'),
287
+ name_regex=pulumi.get(__response__, 'name_regex'),
288
+ names=pulumi.get(__response__, 'names'),
289
+ output_file=pulumi.get(__response__, 'output_file'),
290
+ resource_group_id=pulumi.get(__response__, 'resource_group_id'),
291
+ tags=pulumi.get(__response__, 'tags')))
@@ -100,6 +100,9 @@ class GetNetworksResult:
100
100
  @property
101
101
  @pulumi.getter(name="dhcpOptionsSetId")
102
102
  def dhcp_options_set_id(self) -> Optional[str]:
103
+ """
104
+ The ID of the DHCP options set.
105
+ """
103
106
  return pulumi.get(self, "dhcp_options_set_id")
104
107
 
105
108
  @property
@@ -61,7 +61,7 @@ class NatGatewayArgs:
61
61
  :param pulumi.Input[str] nat_gateway_name: Name of the nat gateway. The value can have a string of 2 to 128 characters, must contain only alphanumeric characters or hyphens, such as "-",".","_", and must not begin or end with a hyphen, and must not begin with http:// or https://. Defaults to null.
62
62
  :param pulumi.Input[str] nat_type: The type of NAT gateway. Valid values: `Enhanced`. **NOTE:** From version 1.137.0, `nat_type` cannot be set to `Normal`.
63
63
  :param pulumi.Input[str] network_type: Indicates the type of the created NAT gateway. Valid values `internet` and `intranet`. `internet`: Internet NAT Gateway. `intranet`: VPC NAT Gateway.
64
- :param pulumi.Input[str] payment_type: The billing method of the NAT gateway. Valid values are `PayAsYouGo` and `Subscription`. Default to `PayAsYouGo`.
64
+ :param pulumi.Input[str] payment_type: The billing method of the NAT gateway. Valid values are `PayAsYouGo`. Default to `PayAsYouGo`.
65
65
  :param pulumi.Input[int] period: The duration that you will buy the resource, in month. It is valid when `payment_type` is `Subscription`. Valid values: [1-9, 12, 24, 36]. At present, the provider does not support modify "period" and you can do that via web console. **NOTE:** International station only supports `Subscription`.
66
66
  > **NOTE:** The attribute `period` is only used to create Subscription instance or modify the PayAsYouGo instance to Subscription. Once effect, it will not be modified that means running `pulumi up` will not effect the resource.
67
67
  :param pulumi.Input[bool] private_link_enabled: Specifies whether to enable PrivateLink. Default value: `false`. Valid values:
@@ -293,7 +293,7 @@ class NatGatewayArgs:
293
293
  @pulumi.getter(name="paymentType")
294
294
  def payment_type(self) -> Optional[pulumi.Input[str]]:
295
295
  """
296
- The billing method of the NAT gateway. Valid values are `PayAsYouGo` and `Subscription`. Default to `PayAsYouGo`.
296
+ The billing method of the NAT gateway. Valid values are `PayAsYouGo`. Default to `PayAsYouGo`.
297
297
  """
298
298
  return pulumi.get(self, "payment_type")
299
299
 
@@ -409,7 +409,7 @@ class _NatGatewayState:
409
409
  :param pulumi.Input[str] nat_gateway_name: Name of the nat gateway. The value can have a string of 2 to 128 characters, must contain only alphanumeric characters or hyphens, such as "-",".","_", and must not begin or end with a hyphen, and must not begin with http:// or https://. Defaults to null.
410
410
  :param pulumi.Input[str] nat_type: The type of NAT gateway. Valid values: `Enhanced`. **NOTE:** From version 1.137.0, `nat_type` cannot be set to `Normal`.
411
411
  :param pulumi.Input[str] network_type: Indicates the type of the created NAT gateway. Valid values `internet` and `intranet`. `internet`: Internet NAT Gateway. `intranet`: VPC NAT Gateway.
412
- :param pulumi.Input[str] payment_type: The billing method of the NAT gateway. Valid values are `PayAsYouGo` and `Subscription`. Default to `PayAsYouGo`.
412
+ :param pulumi.Input[str] payment_type: The billing method of the NAT gateway. Valid values are `PayAsYouGo`. Default to `PayAsYouGo`.
413
413
  :param pulumi.Input[int] period: The duration that you will buy the resource, in month. It is valid when `payment_type` is `Subscription`. Valid values: [1-9, 12, 24, 36]. At present, the provider does not support modify "period" and you can do that via web console. **NOTE:** International station only supports `Subscription`.
414
414
  > **NOTE:** The attribute `period` is only used to create Subscription instance or modify the PayAsYouGo instance to Subscription. Once effect, it will not be modified that means running `pulumi up` will not effect the resource.
415
415
  :param pulumi.Input[bool] private_link_enabled: Specifies whether to enable PrivateLink. Default value: `false`. Valid values:
@@ -651,7 +651,7 @@ class _NatGatewayState:
651
651
  @pulumi.getter(name="paymentType")
652
652
  def payment_type(self) -> Optional[pulumi.Input[str]]:
653
653
  """
654
- The billing method of the NAT gateway. Valid values are `PayAsYouGo` and `Subscription`. Default to `PayAsYouGo`.
654
+ The billing method of the NAT gateway. Valid values are `PayAsYouGo`. Default to `PayAsYouGo`.
655
655
  """
656
656
  return pulumi.get(self, "payment_type")
657
657
 
@@ -784,6 +784,75 @@ class NatGateway(pulumi.CustomResource):
784
784
  vswitch_id: Optional[pulumi.Input[str]] = None,
785
785
  __props__=None):
786
786
  """
787
+ Provides a resource to create a VPC NAT Gateway.
788
+
789
+ > **NOTE:** Resource bandwidth packages will not be supported since 00:00 on November 4, 2017, and public IP can be replaced be elastic IPs.
790
+ If a Nat Gateway has already bought some bandwidth packages, it can not bind elastic IP and you have to submit the [work order](https://selfservice.console.aliyun.com/ticket/createIndex) to solve.
791
+ If you want to add public IP, you can use resource 'alicloud_eip_association' to bind several elastic IPs for one Nat Gateway.
792
+
793
+ > **NOTE:** From version 1.7.1, this resource has deprecated bandwidth packages.
794
+ But, in order to manage stock bandwidth packages, version 1.13.0 re-support configuring 'bandwidth_packages'.
795
+
796
+ > **NOTE:** Available since v1.37.0.
797
+
798
+ ## Example Usage
799
+
800
+ Basic usage
801
+
802
+ - create enhanced nat gateway
803
+
804
+ ```python
805
+ import pulumi
806
+ import pulumi_alicloud as alicloud
807
+
808
+ config = pulumi.Config()
809
+ name = config.get("name")
810
+ if name is None:
811
+ name = "tf_example"
812
+ default = alicloud.vpc.get_enhanced_nat_available_zones()
813
+ default_network = alicloud.vpc.Network("default",
814
+ vpc_name=name,
815
+ cidr_block="10.0.0.0/8")
816
+ default_switch = alicloud.vpc.Switch("default",
817
+ vswitch_name=name,
818
+ zone_id=default.zones[0].zone_id,
819
+ cidr_block="10.10.0.0/20",
820
+ vpc_id=default_network.id)
821
+ default_nat_gateway = alicloud.vpc.NatGateway("default",
822
+ vpc_id=default_network.id,
823
+ nat_gateway_name=name,
824
+ payment_type="PayAsYouGo",
825
+ vswitch_id=default_switch.id,
826
+ nat_type="Enhanced")
827
+ ```
828
+
829
+ - transform nat from Normal to Enhanced
830
+ > **NOTE:** You must set `nat_type` to `Enhanced` and set `vswitch_id`.
831
+
832
+ ```python
833
+ import pulumi
834
+ import pulumi_alicloud as alicloud
835
+
836
+ config = pulumi.Config()
837
+ name = config.get("name")
838
+ if name is None:
839
+ name = "tf-example"
840
+ default = alicloud.vpc.get_enhanced_nat_available_zones()
841
+ default_network = alicloud.vpc.Network("default",
842
+ vpc_name=name,
843
+ cidr_block="10.0.0.0/8")
844
+ default_switch = alicloud.vpc.Switch("default",
845
+ vswitch_name=name,
846
+ zone_id=default.zones[0].zone_id,
847
+ cidr_block="10.10.0.0/20",
848
+ vpc_id=default_network.id)
849
+ default_nat_gateway = alicloud.vpc.NatGateway("default",
850
+ vpc_id=default_network.id,
851
+ nat_gateway_name=name,
852
+ vswitch_id=default_switch.id,
853
+ nat_type="Enhanced")
854
+ ```
855
+
787
856
  ## Import
788
857
 
789
858
  Nat gateway can be imported using the id, e.g.
@@ -811,7 +880,7 @@ class NatGateway(pulumi.CustomResource):
811
880
  :param pulumi.Input[str] nat_gateway_name: Name of the nat gateway. The value can have a string of 2 to 128 characters, must contain only alphanumeric characters or hyphens, such as "-",".","_", and must not begin or end with a hyphen, and must not begin with http:// or https://. Defaults to null.
812
881
  :param pulumi.Input[str] nat_type: The type of NAT gateway. Valid values: `Enhanced`. **NOTE:** From version 1.137.0, `nat_type` cannot be set to `Normal`.
813
882
  :param pulumi.Input[str] network_type: Indicates the type of the created NAT gateway. Valid values `internet` and `intranet`. `internet`: Internet NAT Gateway. `intranet`: VPC NAT Gateway.
814
- :param pulumi.Input[str] payment_type: The billing method of the NAT gateway. Valid values are `PayAsYouGo` and `Subscription`. Default to `PayAsYouGo`.
883
+ :param pulumi.Input[str] payment_type: The billing method of the NAT gateway. Valid values are `PayAsYouGo`. Default to `PayAsYouGo`.
815
884
  :param pulumi.Input[int] period: The duration that you will buy the resource, in month. It is valid when `payment_type` is `Subscription`. Valid values: [1-9, 12, 24, 36]. At present, the provider does not support modify "period" and you can do that via web console. **NOTE:** International station only supports `Subscription`.
816
885
  > **NOTE:** The attribute `period` is only used to create Subscription instance or modify the PayAsYouGo instance to Subscription. Once effect, it will not be modified that means running `pulumi up` will not effect the resource.
817
886
  :param pulumi.Input[bool] private_link_enabled: Specifies whether to enable PrivateLink. Default value: `false`. Valid values:
@@ -827,6 +896,75 @@ class NatGateway(pulumi.CustomResource):
827
896
  args: NatGatewayArgs,
828
897
  opts: Optional[pulumi.ResourceOptions] = None):
829
898
  """
899
+ Provides a resource to create a VPC NAT Gateway.
900
+
901
+ > **NOTE:** Resource bandwidth packages will not be supported since 00:00 on November 4, 2017, and public IP can be replaced be elastic IPs.
902
+ If a Nat Gateway has already bought some bandwidth packages, it can not bind elastic IP and you have to submit the [work order](https://selfservice.console.aliyun.com/ticket/createIndex) to solve.
903
+ If you want to add public IP, you can use resource 'alicloud_eip_association' to bind several elastic IPs for one Nat Gateway.
904
+
905
+ > **NOTE:** From version 1.7.1, this resource has deprecated bandwidth packages.
906
+ But, in order to manage stock bandwidth packages, version 1.13.0 re-support configuring 'bandwidth_packages'.
907
+
908
+ > **NOTE:** Available since v1.37.0.
909
+
910
+ ## Example Usage
911
+
912
+ Basic usage
913
+
914
+ - create enhanced nat gateway
915
+
916
+ ```python
917
+ import pulumi
918
+ import pulumi_alicloud as alicloud
919
+
920
+ config = pulumi.Config()
921
+ name = config.get("name")
922
+ if name is None:
923
+ name = "tf_example"
924
+ default = alicloud.vpc.get_enhanced_nat_available_zones()
925
+ default_network = alicloud.vpc.Network("default",
926
+ vpc_name=name,
927
+ cidr_block="10.0.0.0/8")
928
+ default_switch = alicloud.vpc.Switch("default",
929
+ vswitch_name=name,
930
+ zone_id=default.zones[0].zone_id,
931
+ cidr_block="10.10.0.0/20",
932
+ vpc_id=default_network.id)
933
+ default_nat_gateway = alicloud.vpc.NatGateway("default",
934
+ vpc_id=default_network.id,
935
+ nat_gateway_name=name,
936
+ payment_type="PayAsYouGo",
937
+ vswitch_id=default_switch.id,
938
+ nat_type="Enhanced")
939
+ ```
940
+
941
+ - transform nat from Normal to Enhanced
942
+ > **NOTE:** You must set `nat_type` to `Enhanced` and set `vswitch_id`.
943
+
944
+ ```python
945
+ import pulumi
946
+ import pulumi_alicloud as alicloud
947
+
948
+ config = pulumi.Config()
949
+ name = config.get("name")
950
+ if name is None:
951
+ name = "tf-example"
952
+ default = alicloud.vpc.get_enhanced_nat_available_zones()
953
+ default_network = alicloud.vpc.Network("default",
954
+ vpc_name=name,
955
+ cidr_block="10.0.0.0/8")
956
+ default_switch = alicloud.vpc.Switch("default",
957
+ vswitch_name=name,
958
+ zone_id=default.zones[0].zone_id,
959
+ cidr_block="10.10.0.0/20",
960
+ vpc_id=default_network.id)
961
+ default_nat_gateway = alicloud.vpc.NatGateway("default",
962
+ vpc_id=default_network.id,
963
+ nat_gateway_name=name,
964
+ vswitch_id=default_switch.id,
965
+ nat_type="Enhanced")
966
+ ```
967
+
830
968
  ## Import
831
969
 
832
970
  Nat gateway can be imported using the id, e.g.
@@ -962,7 +1100,7 @@ class NatGateway(pulumi.CustomResource):
962
1100
  :param pulumi.Input[str] nat_gateway_name: Name of the nat gateway. The value can have a string of 2 to 128 characters, must contain only alphanumeric characters or hyphens, such as "-",".","_", and must not begin or end with a hyphen, and must not begin with http:// or https://. Defaults to null.
963
1101
  :param pulumi.Input[str] nat_type: The type of NAT gateway. Valid values: `Enhanced`. **NOTE:** From version 1.137.0, `nat_type` cannot be set to `Normal`.
964
1102
  :param pulumi.Input[str] network_type: Indicates the type of the created NAT gateway. Valid values `internet` and `intranet`. `internet`: Internet NAT Gateway. `intranet`: VPC NAT Gateway.
965
- :param pulumi.Input[str] payment_type: The billing method of the NAT gateway. Valid values are `PayAsYouGo` and `Subscription`. Default to `PayAsYouGo`.
1103
+ :param pulumi.Input[str] payment_type: The billing method of the NAT gateway. Valid values are `PayAsYouGo`. Default to `PayAsYouGo`.
966
1104
  :param pulumi.Input[int] period: The duration that you will buy the resource, in month. It is valid when `payment_type` is `Subscription`. Valid values: [1-9, 12, 24, 36]. At present, the provider does not support modify "period" and you can do that via web console. **NOTE:** International station only supports `Subscription`.
967
1105
  > **NOTE:** The attribute `period` is only used to create Subscription instance or modify the PayAsYouGo instance to Subscription. Once effect, it will not be modified that means running `pulumi up` will not effect the resource.
968
1106
  :param pulumi.Input[bool] private_link_enabled: Specifies whether to enable PrivateLink. Default value: `false`. Valid values:
@@ -1124,7 +1262,7 @@ class NatGateway(pulumi.CustomResource):
1124
1262
  @pulumi.getter(name="paymentType")
1125
1263
  def payment_type(self) -> pulumi.Output[str]:
1126
1264
  """
1127
- The billing method of the NAT gateway. Valid values are `PayAsYouGo` and `Subscription`. Default to `PayAsYouGo`.
1265
+ The billing method of the NAT gateway. Valid values are `PayAsYouGo`. Default to `PayAsYouGo`.
1128
1266
  """
1129
1267
  return pulumi.get(self, "payment_type")
1130
1268