pulumi-alicloud 3.76.0a1743571220__py3-none-any.whl → 3.76.0a1744139894__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 (237) hide show
  1. pulumi_alicloud/__init__.py +271 -4
  2. pulumi_alicloud/_inputs.py +20 -0
  3. pulumi_alicloud/actiontrail/global_events_storage_region.py +2 -2
  4. pulumi_alicloud/adb/db_cluster_lake_version.py +458 -49
  5. pulumi_alicloud/alb/load_balancer_access_log_config_attachment.py +2 -2
  6. pulumi_alicloud/alb/server_group.py +2 -2
  7. pulumi_alicloud/alikafka/sasl_acl.py +7 -7
  8. pulumi_alicloud/apigateway/_inputs.py +134 -0
  9. pulumi_alicloud/apigateway/group.py +117 -5
  10. pulumi_alicloud/apigateway/instance.py +148 -7
  11. pulumi_alicloud/apigateway/outputs.py +107 -0
  12. pulumi_alicloud/arms/alert_contact.py +2 -2
  13. pulumi_alicloud/arms/alert_contact_group.py +2 -2
  14. pulumi_alicloud/arms/get_prometheus.py +2 -6
  15. pulumi_alicloud/arms/grafana_workspace.py +511 -69
  16. pulumi_alicloud/arms/outputs.py +18 -18
  17. pulumi_alicloud/arms/prometheus_alert_rule.py +2 -2
  18. pulumi_alicloud/arms/prometheus_monitoring.py +2 -2
  19. pulumi_alicloud/cdn/domain_new.py +2 -2
  20. pulumi_alicloud/cen/_inputs.py +6 -3
  21. pulumi_alicloud/cen/get_transit_router_vpn_attachments.py +131 -19
  22. pulumi_alicloud/cen/instance.py +101 -59
  23. pulumi_alicloud/cen/inter_region_traffic_qos_policy.py +126 -81
  24. pulumi_alicloud/cen/inter_region_traffic_qos_queue.py +93 -47
  25. pulumi_alicloud/cen/outputs.py +69 -26
  26. pulumi_alicloud/cen/transit_route_table_aggregation.py +171 -55
  27. pulumi_alicloud/cen/transit_router.py +127 -53
  28. pulumi_alicloud/cen/transit_router_cidr.py +53 -35
  29. pulumi_alicloud/cen/transit_router_ecr_attachment.py +2 -2
  30. pulumi_alicloud/cen/transit_router_peer_attachment.py +360 -143
  31. pulumi_alicloud/cen/transit_router_route_table_association.py +33 -43
  32. pulumi_alicloud/cen/transit_router_vpn_attachment.py +438 -109
  33. pulumi_alicloud/clickhouse/db_cluster.py +179 -6
  34. pulumi_alicloud/clickhouseenterprisedbcluster/__init__.py +14 -0
  35. pulumi_alicloud/clickhouseenterprisedbcluster/_inputs.py +167 -0
  36. pulumi_alicloud/clickhouseenterprisedbcluster/account.py +554 -0
  37. pulumi_alicloud/clickhouseenterprisedbcluster/backup_policy.py +407 -0
  38. pulumi_alicloud/clickhouseenterprisedbcluster/click_house_enterprise_db_cluster.py +641 -0
  39. pulumi_alicloud/clickhouseenterprisedbcluster/outputs.py +147 -0
  40. pulumi_alicloud/clickhouseenterprisedbcluster/public_endpoint.py +364 -0
  41. pulumi_alicloud/clickhouseenterprisedbcluster/security_ip.py +357 -0
  42. pulumi_alicloud/cloudsso/scim_server_credential.py +178 -11
  43. pulumi_alicloud/config/outputs.py +12 -0
  44. pulumi_alicloud/cs/__init__.py +1 -0
  45. pulumi_alicloud/cs/get_kubernetes_node_pools.py +147 -0
  46. pulumi_alicloud/cs/managed_kubernetes.py +127 -24
  47. pulumi_alicloud/cs/node_pool.py +42 -42
  48. pulumi_alicloud/cs/outputs.py +1782 -4
  49. pulumi_alicloud/databasefilesystem/service_linked_role.py +2 -2
  50. pulumi_alicloud/dataworks/data_source.py +2 -2
  51. pulumi_alicloud/dataworks/data_source_shared_rule.py +2 -2
  52. pulumi_alicloud/dataworks/di_alarm_rule.py +2 -2
  53. pulumi_alicloud/dataworks/di_job.py +2 -2
  54. pulumi_alicloud/dataworks/dw_resource_group.py +2 -2
  55. pulumi_alicloud/dataworks/network.py +2 -2
  56. pulumi_alicloud/dataworks/project.py +2 -2
  57. pulumi_alicloud/dataworks/project_member.py +2 -2
  58. pulumi_alicloud/dbs/backup_plan.py +2 -2
  59. pulumi_alicloud/ddos/bgp_policy.py +2 -2
  60. pulumi_alicloud/eais/__init__.py +2 -0
  61. pulumi_alicloud/eais/_inputs.py +75 -0
  62. pulumi_alicloud/eais/client_instance_attachment.py +408 -0
  63. pulumi_alicloud/eais/instance.py +365 -118
  64. pulumi_alicloud/eais/outputs.py +32 -0
  65. pulumi_alicloud/ebs/disk_replica_group.py +512 -30
  66. pulumi_alicloud/ebs/disk_replica_pair.py +443 -113
  67. pulumi_alicloud/ebs/enterprise_snapshot_policy.py +2 -2
  68. pulumi_alicloud/ebs/enterprise_snapshot_policy_attachment.py +2 -2
  69. pulumi_alicloud/ecp/instance.py +2 -2
  70. pulumi_alicloud/ecp/key_pair.py +4 -4
  71. pulumi_alicloud/ecs/_inputs.py +33 -0
  72. pulumi_alicloud/ecs/disk.py +1 -1
  73. pulumi_alicloud/ecs/ecs_disk.py +1 -1
  74. pulumi_alicloud/ecs/ecs_launch_template.py +23 -23
  75. pulumi_alicloud/ecs/instance.py +1 -1
  76. pulumi_alicloud/ecs/outputs.py +26 -2
  77. pulumi_alicloud/eflo/__init__.py +5 -0
  78. pulumi_alicloud/eflo/_inputs.py +1717 -0
  79. pulumi_alicloud/eflo/cluster.py +935 -0
  80. pulumi_alicloud/eflo/invocation.py +1114 -0
  81. pulumi_alicloud/eflo/node.py +1013 -0
  82. pulumi_alicloud/eflo/node_group.py +1101 -0
  83. pulumi_alicloud/eflo/outputs.py +1366 -0
  84. pulumi_alicloud/ens/eip_instance_attachment.py +2 -2
  85. pulumi_alicloud/ens/image.py +81 -34
  86. pulumi_alicloud/esa/__init__.py +4 -0
  87. pulumi_alicloud/esa/_inputs.py +640 -18
  88. pulumi_alicloud/esa/cache_reserve_instance.py +522 -0
  89. pulumi_alicloud/esa/cache_rule.py +193 -179
  90. pulumi_alicloud/esa/certificate.py +99 -92
  91. pulumi_alicloud/esa/compression_rule.py +42 -28
  92. pulumi_alicloud/esa/edge_container_app.py +972 -0
  93. pulumi_alicloud/esa/edge_container_app_record.py +376 -0
  94. pulumi_alicloud/esa/http_request_header_modification_rule.py +56 -42
  95. pulumi_alicloud/esa/http_response_header_modification_rule.py +35 -56
  96. pulumi_alicloud/esa/https_application_configuration.py +42 -28
  97. pulumi_alicloud/esa/https_basic_configuration.py +56 -42
  98. pulumi_alicloud/esa/image_transform.py +42 -28
  99. pulumi_alicloud/esa/kv_namespace.py +11 -11
  100. pulumi_alicloud/esa/list.py +28 -28
  101. pulumi_alicloud/esa/network_optimization.py +56 -126
  102. pulumi_alicloud/esa/origin_pool.py +19 -19
  103. pulumi_alicloud/esa/origin_rule.py +67 -39
  104. pulumi_alicloud/esa/outputs.py +536 -12
  105. pulumi_alicloud/esa/page.py +28 -49
  106. pulumi_alicloud/esa/rate_plan_instance.py +86 -159
  107. pulumi_alicloud/esa/redirect_rule.py +42 -28
  108. pulumi_alicloud/esa/rewrite_url_rule.py +49 -63
  109. pulumi_alicloud/esa/site.py +67 -123
  110. pulumi_alicloud/esa/site_delivery_task.py +841 -0
  111. pulumi_alicloud/esa/waiting_room.py +269 -319
  112. pulumi_alicloud/esa/waiting_room_event.py +291 -305
  113. pulumi_alicloud/esa/waiting_room_rule.py +46 -53
  114. pulumi_alicloud/ess/_inputs.py +155 -0
  115. pulumi_alicloud/ess/outputs.py +128 -0
  116. pulumi_alicloud/ess/scaling_group.py +237 -2
  117. pulumi_alicloud/ess/scaling_rule.py +143 -2
  118. pulumi_alicloud/expressconnect/router_grant_association.py +2 -2
  119. pulumi_alicloud/expressconnect/virtual_border_router.py +4 -4
  120. pulumi_alicloud/gpdb/hadoop_data_source.py +2 -2
  121. pulumi_alicloud/gpdb/jdbc_data_source.py +2 -2
  122. pulumi_alicloud/gpdb/remote_adb_data_source.py +6 -6
  123. pulumi_alicloud/gpdb/streaming_data_source.py +2 -2
  124. pulumi_alicloud/gpdb/streaming_job.py +2 -2
  125. pulumi_alicloud/ims/oidc_provider.py +24 -13
  126. pulumi_alicloud/kvstore/account.py +9 -9
  127. pulumi_alicloud/kvstore/connection.py +2 -2
  128. pulumi_alicloud/kvstore/get_instance_classes.py +2 -2
  129. pulumi_alicloud/kvstore/get_instance_engines.py +2 -2
  130. pulumi_alicloud/kvstore/instance.py +7 -7
  131. pulumi_alicloud/kvstore/outputs.py +2 -2
  132. pulumi_alicloud/live/caster.py +2 -2
  133. pulumi_alicloud/maxcompute/__init__.py +1 -0
  134. pulumi_alicloud/maxcompute/_inputs.py +232 -3
  135. pulumi_alicloud/maxcompute/outputs.py +183 -2
  136. pulumi_alicloud/maxcompute/project.py +2 -2
  137. pulumi_alicloud/maxcompute/quota.py +438 -0
  138. pulumi_alicloud/nas/mount_target.py +149 -54
  139. pulumi_alicloud/nlb/__init__.py +1 -0
  140. pulumi_alicloud/nlb/_inputs.py +43 -6
  141. pulumi_alicloud/nlb/load_balancer.py +212 -24
  142. pulumi_alicloud/nlb/load_balancer_zone_shifted_attachment.py +397 -0
  143. pulumi_alicloud/nlb/outputs.py +30 -4
  144. pulumi_alicloud/nlb/server_group_server_attachment.py +118 -65
  145. pulumi_alicloud/oss/__init__.py +1 -0
  146. pulumi_alicloud/oss/_inputs.py +20 -0
  147. pulumi_alicloud/oss/access_point.py +2 -2
  148. pulumi_alicloud/oss/bucket_cname.py +2 -2
  149. pulumi_alicloud/oss/bucket_cors.py +2 -2
  150. pulumi_alicloud/oss/bucket_style.py +402 -0
  151. pulumi_alicloud/oss/bucket_website.py +2 -2
  152. pulumi_alicloud/oss/outputs.py +14 -0
  153. pulumi_alicloud/pai/service.py +59 -67
  154. pulumi_alicloud/polardb/cluster.py +75 -28
  155. pulumi_alicloud/privatelink/vpc_endpoint_zone.py +1 -1
  156. pulumi_alicloud/pulumi-plugin.json +1 -1
  157. pulumi_alicloud/ram/__init__.py +3 -0
  158. pulumi_alicloud/ram/_inputs.py +9 -9
  159. pulumi_alicloud/ram/access_key.py +77 -31
  160. pulumi_alicloud/ram/account_alias.py +18 -45
  161. pulumi_alicloud/ram/get_system_policys.py +189 -0
  162. pulumi_alicloud/ram/group.py +156 -35
  163. pulumi_alicloud/ram/group_policy_attachment.py +51 -29
  164. pulumi_alicloud/ram/login_profile.py +92 -38
  165. pulumi_alicloud/ram/outputs.py +91 -6
  166. pulumi_alicloud/ram/password_policy.py +779 -0
  167. pulumi_alicloud/ram/policy.py +199 -88
  168. pulumi_alicloud/ram/role_policy_attachment.py +51 -29
  169. pulumi_alicloud/ram/saml_provider.py +44 -37
  170. pulumi_alicloud/ram/user_group_attachment.py +273 -0
  171. pulumi_alicloud/ram/user_policy_attachment.py +49 -27
  172. pulumi_alicloud/rds/__init__.py +1 -0
  173. pulumi_alicloud/rds/custom_disk.py +1053 -0
  174. pulumi_alicloud/rds/instance.py +110 -14
  175. pulumi_alicloud/redis/tair_instance.py +14 -14
  176. pulumi_alicloud/resourcemanager/__init__.py +1 -0
  177. pulumi_alicloud/resourcemanager/_inputs.py +53 -0
  178. pulumi_alicloud/resourcemanager/auto_grouping_rule.py +796 -0
  179. pulumi_alicloud/resourcemanager/outputs.py +50 -0
  180. pulumi_alicloud/resourcemanager/shared_resource.py +7 -0
  181. pulumi_alicloud/rocketmq/__init__.py +1 -1
  182. pulumi_alicloud/rocketmq/_inputs.py +146 -4
  183. pulumi_alicloud/rocketmq/account.py +452 -0
  184. pulumi_alicloud/rocketmq/acl.py +473 -47
  185. pulumi_alicloud/rocketmq/client_user.py +8 -2
  186. pulumi_alicloud/rocketmq/consumer_group.py +121 -24
  187. pulumi_alicloud/rocketmq/dnat_entry.py +8 -2
  188. pulumi_alicloud/rocketmq/outputs.py +113 -4
  189. pulumi_alicloud/rocketmq/qos.py +8 -2
  190. pulumi_alicloud/rocketmq/qos_car.py +10 -4
  191. pulumi_alicloud/rocketmq/qos_policy.py +6 -0
  192. pulumi_alicloud/rocketmq/rocket_mq_instance.py +136 -7
  193. pulumi_alicloud/rocketmq/rocket_mq_topic.py +121 -24
  194. pulumi_alicloud/rocketmq/snat_entry.py +8 -2
  195. pulumi_alicloud/sag/__init__.py +8 -0
  196. pulumi_alicloud/sag/acl.py +200 -0
  197. pulumi_alicloud/{rocketmq → sag}/acl_rule.py +7 -7
  198. pulumi_alicloud/sag/client_user.py +560 -0
  199. pulumi_alicloud/sag/dnat_entry.py +512 -0
  200. pulumi_alicloud/sag/get_acls.py +2 -2
  201. pulumi_alicloud/sag/qos.py +202 -0
  202. pulumi_alicloud/sag/qos_car.py +654 -0
  203. pulumi_alicloud/sag/qos_policy.py +659 -0
  204. pulumi_alicloud/sag/snat_entry.py +313 -0
  205. pulumi_alicloud/securitycenter/group.py +2 -2
  206. pulumi_alicloud/selectdb/db_instance.py +60 -11
  207. pulumi_alicloud/slb/server_group_server_attachment.py +101 -111
  208. pulumi_alicloud/sls/oss_export_sink.py +2 -2
  209. pulumi_alicloud/threatdetection/__init__.py +3 -0
  210. pulumi_alicloud/threatdetection/anti_brute_force_rule.py +41 -65
  211. pulumi_alicloud/threatdetection/asset_bind.py +209 -0
  212. pulumi_alicloud/threatdetection/asset_selection_config.py +258 -0
  213. pulumi_alicloud/threatdetection/instance.py +271 -54
  214. pulumi_alicloud/threatdetection/log_meta.py +351 -0
  215. pulumi_alicloud/vpc/__init__.py +1 -0
  216. pulumi_alicloud/vpc/_inputs.py +281 -0
  217. pulumi_alicloud/vpc/gateway_endpoint.py +85 -27
  218. pulumi_alicloud/vpc/get_ipam_ipam_pool_allocations.py +2 -2
  219. pulumi_alicloud/vpc/get_ipam_ipam_pool_cidrs.py +2 -2
  220. pulumi_alicloud/vpc/get_ipam_ipam_pools.py +2 -2
  221. pulumi_alicloud/vpc/get_ipam_ipam_scopes.py +2 -2
  222. pulumi_alicloud/vpc/get_ipam_ipams.py +2 -2
  223. pulumi_alicloud/vpc/ipv6_address.py +85 -5
  224. pulumi_alicloud/vpc/outputs.py +232 -0
  225. pulumi_alicloud/vpc/peer_connection.py +84 -42
  226. pulumi_alicloud/vpc/peer_connection_accepter.py +7 -21
  227. pulumi_alicloud/vpc/route_table.py +100 -45
  228. pulumi_alicloud/vpc/vpc_route_entry.py +724 -0
  229. pulumi_alicloud/vpn/_inputs.py +716 -71
  230. pulumi_alicloud/vpn/gateway_vpn_attachment.py +622 -128
  231. pulumi_alicloud/vpn/get_gateway_vpn_attachments.py +20 -63
  232. pulumi_alicloud/vpn/ipsec_server.py +2 -2
  233. pulumi_alicloud/vpn/outputs.py +1963 -998
  234. {pulumi_alicloud-3.76.0a1743571220.dist-info → pulumi_alicloud-3.76.0a1744139894.dist-info}/METADATA +1 -1
  235. {pulumi_alicloud-3.76.0a1743571220.dist-info → pulumi_alicloud-3.76.0a1744139894.dist-info}/RECORD +237 -197
  236. {pulumi_alicloud-3.76.0a1743571220.dist-info → pulumi_alicloud-3.76.0a1744139894.dist-info}/WHEEL +0 -0
  237. {pulumi_alicloud-3.76.0a1743571220.dist-info → pulumi_alicloud-3.76.0a1744139894.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,1101 @@
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
+ from ._inputs import *
18
+
19
+ __all__ = ['NodeGroupArgs', 'NodeGroup']
20
+
21
+ @pulumi.input_type
22
+ class NodeGroupArgs:
23
+ def __init__(__self__, *,
24
+ az: pulumi.Input[str],
25
+ cluster_id: pulumi.Input[str],
26
+ image_id: pulumi.Input[str],
27
+ machine_type: pulumi.Input[str],
28
+ node_group_name: pulumi.Input[str],
29
+ ignore_failed_node_tasks: Optional[pulumi.Input[bool]] = None,
30
+ ip_allocation_policies: Optional[pulumi.Input[Sequence[pulumi.Input['NodeGroupIpAllocationPolicyArgs']]]] = None,
31
+ node_group_description: Optional[pulumi.Input[str]] = None,
32
+ nodes: Optional[pulumi.Input[Sequence[pulumi.Input['NodeGroupNodeArgs']]]] = None,
33
+ user_data: Optional[pulumi.Input[str]] = None,
34
+ vpd_subnets: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
35
+ vswitch_zone_id: Optional[pulumi.Input[str]] = None,
36
+ zone_id: Optional[pulumi.Input[str]] = None):
37
+ """
38
+ The set of arguments for constructing a NodeGroup resource.
39
+ :param pulumi.Input[str] az: Az
40
+ :param pulumi.Input[str] cluster_id: Cluster ID
41
+ :param pulumi.Input[str] image_id: Image ID
42
+ :param pulumi.Input[str] machine_type: Machine type
43
+ :param pulumi.Input[str] node_group_name: The name of the resource
44
+ :param pulumi.Input[bool] ignore_failed_node_tasks: Whether to allow skipping failed nodes. Default value: False
45
+ :param pulumi.Input[Sequence[pulumi.Input['NodeGroupIpAllocationPolicyArgs']]] ip_allocation_policies: IP address combination policy: only one policy type can be selected for each policy, and multiple policies can be combined. See `ip_allocation_policy` below.
46
+ :param pulumi.Input[str] node_group_description: NodeGroupDescription
47
+ :param pulumi.Input[Sequence[pulumi.Input['NodeGroupNodeArgs']]] nodes: Node List See `nodes` below.
48
+ :param pulumi.Input[str] user_data: Custom Data
49
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] vpd_subnets: Cluster subnet list
50
+ :param pulumi.Input[str] vswitch_zone_id: Zone ID of the switch
51
+ :param pulumi.Input[str] zone_id: Zone ID
52
+ """
53
+ pulumi.set(__self__, "az", az)
54
+ pulumi.set(__self__, "cluster_id", cluster_id)
55
+ pulumi.set(__self__, "image_id", image_id)
56
+ pulumi.set(__self__, "machine_type", machine_type)
57
+ pulumi.set(__self__, "node_group_name", node_group_name)
58
+ if ignore_failed_node_tasks is not None:
59
+ pulumi.set(__self__, "ignore_failed_node_tasks", ignore_failed_node_tasks)
60
+ if ip_allocation_policies is not None:
61
+ pulumi.set(__self__, "ip_allocation_policies", ip_allocation_policies)
62
+ if node_group_description is not None:
63
+ pulumi.set(__self__, "node_group_description", node_group_description)
64
+ if nodes is not None:
65
+ pulumi.set(__self__, "nodes", nodes)
66
+ if user_data is not None:
67
+ pulumi.set(__self__, "user_data", user_data)
68
+ if vpd_subnets is not None:
69
+ pulumi.set(__self__, "vpd_subnets", vpd_subnets)
70
+ if vswitch_zone_id is not None:
71
+ pulumi.set(__self__, "vswitch_zone_id", vswitch_zone_id)
72
+ if zone_id is not None:
73
+ pulumi.set(__self__, "zone_id", zone_id)
74
+
75
+ @property
76
+ @pulumi.getter
77
+ def az(self) -> pulumi.Input[str]:
78
+ """
79
+ Az
80
+ """
81
+ return pulumi.get(self, "az")
82
+
83
+ @az.setter
84
+ def az(self, value: pulumi.Input[str]):
85
+ pulumi.set(self, "az", value)
86
+
87
+ @property
88
+ @pulumi.getter(name="clusterId")
89
+ def cluster_id(self) -> pulumi.Input[str]:
90
+ """
91
+ Cluster ID
92
+ """
93
+ return pulumi.get(self, "cluster_id")
94
+
95
+ @cluster_id.setter
96
+ def cluster_id(self, value: pulumi.Input[str]):
97
+ pulumi.set(self, "cluster_id", value)
98
+
99
+ @property
100
+ @pulumi.getter(name="imageId")
101
+ def image_id(self) -> pulumi.Input[str]:
102
+ """
103
+ Image ID
104
+ """
105
+ return pulumi.get(self, "image_id")
106
+
107
+ @image_id.setter
108
+ def image_id(self, value: pulumi.Input[str]):
109
+ pulumi.set(self, "image_id", value)
110
+
111
+ @property
112
+ @pulumi.getter(name="machineType")
113
+ def machine_type(self) -> pulumi.Input[str]:
114
+ """
115
+ Machine type
116
+ """
117
+ return pulumi.get(self, "machine_type")
118
+
119
+ @machine_type.setter
120
+ def machine_type(self, value: pulumi.Input[str]):
121
+ pulumi.set(self, "machine_type", value)
122
+
123
+ @property
124
+ @pulumi.getter(name="nodeGroupName")
125
+ def node_group_name(self) -> pulumi.Input[str]:
126
+ """
127
+ The name of the resource
128
+ """
129
+ return pulumi.get(self, "node_group_name")
130
+
131
+ @node_group_name.setter
132
+ def node_group_name(self, value: pulumi.Input[str]):
133
+ pulumi.set(self, "node_group_name", value)
134
+
135
+ @property
136
+ @pulumi.getter(name="ignoreFailedNodeTasks")
137
+ def ignore_failed_node_tasks(self) -> Optional[pulumi.Input[bool]]:
138
+ """
139
+ Whether to allow skipping failed nodes. Default value: False
140
+ """
141
+ return pulumi.get(self, "ignore_failed_node_tasks")
142
+
143
+ @ignore_failed_node_tasks.setter
144
+ def ignore_failed_node_tasks(self, value: Optional[pulumi.Input[bool]]):
145
+ pulumi.set(self, "ignore_failed_node_tasks", value)
146
+
147
+ @property
148
+ @pulumi.getter(name="ipAllocationPolicies")
149
+ def ip_allocation_policies(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['NodeGroupIpAllocationPolicyArgs']]]]:
150
+ """
151
+ IP address combination policy: only one policy type can be selected for each policy, and multiple policies can be combined. See `ip_allocation_policy` below.
152
+ """
153
+ return pulumi.get(self, "ip_allocation_policies")
154
+
155
+ @ip_allocation_policies.setter
156
+ def ip_allocation_policies(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['NodeGroupIpAllocationPolicyArgs']]]]):
157
+ pulumi.set(self, "ip_allocation_policies", value)
158
+
159
+ @property
160
+ @pulumi.getter(name="nodeGroupDescription")
161
+ def node_group_description(self) -> Optional[pulumi.Input[str]]:
162
+ """
163
+ NodeGroupDescription
164
+ """
165
+ return pulumi.get(self, "node_group_description")
166
+
167
+ @node_group_description.setter
168
+ def node_group_description(self, value: Optional[pulumi.Input[str]]):
169
+ pulumi.set(self, "node_group_description", value)
170
+
171
+ @property
172
+ @pulumi.getter
173
+ def nodes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['NodeGroupNodeArgs']]]]:
174
+ """
175
+ Node List See `nodes` below.
176
+ """
177
+ return pulumi.get(self, "nodes")
178
+
179
+ @nodes.setter
180
+ def nodes(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['NodeGroupNodeArgs']]]]):
181
+ pulumi.set(self, "nodes", value)
182
+
183
+ @property
184
+ @pulumi.getter(name="userData")
185
+ def user_data(self) -> Optional[pulumi.Input[str]]:
186
+ """
187
+ Custom Data
188
+ """
189
+ return pulumi.get(self, "user_data")
190
+
191
+ @user_data.setter
192
+ def user_data(self, value: Optional[pulumi.Input[str]]):
193
+ pulumi.set(self, "user_data", value)
194
+
195
+ @property
196
+ @pulumi.getter(name="vpdSubnets")
197
+ def vpd_subnets(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
198
+ """
199
+ Cluster subnet list
200
+ """
201
+ return pulumi.get(self, "vpd_subnets")
202
+
203
+ @vpd_subnets.setter
204
+ def vpd_subnets(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
205
+ pulumi.set(self, "vpd_subnets", value)
206
+
207
+ @property
208
+ @pulumi.getter(name="vswitchZoneId")
209
+ def vswitch_zone_id(self) -> Optional[pulumi.Input[str]]:
210
+ """
211
+ Zone ID of the switch
212
+ """
213
+ return pulumi.get(self, "vswitch_zone_id")
214
+
215
+ @vswitch_zone_id.setter
216
+ def vswitch_zone_id(self, value: Optional[pulumi.Input[str]]):
217
+ pulumi.set(self, "vswitch_zone_id", value)
218
+
219
+ @property
220
+ @pulumi.getter(name="zoneId")
221
+ def zone_id(self) -> Optional[pulumi.Input[str]]:
222
+ """
223
+ Zone ID
224
+ """
225
+ return pulumi.get(self, "zone_id")
226
+
227
+ @zone_id.setter
228
+ def zone_id(self, value: Optional[pulumi.Input[str]]):
229
+ pulumi.set(self, "zone_id", value)
230
+
231
+
232
+ @pulumi.input_type
233
+ class _NodeGroupState:
234
+ def __init__(__self__, *,
235
+ az: Optional[pulumi.Input[str]] = None,
236
+ cluster_id: Optional[pulumi.Input[str]] = None,
237
+ create_time: Optional[pulumi.Input[str]] = None,
238
+ ignore_failed_node_tasks: Optional[pulumi.Input[bool]] = None,
239
+ image_id: Optional[pulumi.Input[str]] = None,
240
+ ip_allocation_policies: Optional[pulumi.Input[Sequence[pulumi.Input['NodeGroupIpAllocationPolicyArgs']]]] = None,
241
+ machine_type: Optional[pulumi.Input[str]] = None,
242
+ node_group_description: Optional[pulumi.Input[str]] = None,
243
+ node_group_id: Optional[pulumi.Input[str]] = None,
244
+ node_group_name: Optional[pulumi.Input[str]] = None,
245
+ nodes: Optional[pulumi.Input[Sequence[pulumi.Input['NodeGroupNodeArgs']]]] = None,
246
+ user_data: Optional[pulumi.Input[str]] = None,
247
+ vpd_subnets: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
248
+ vswitch_zone_id: Optional[pulumi.Input[str]] = None,
249
+ zone_id: Optional[pulumi.Input[str]] = None):
250
+ """
251
+ Input properties used for looking up and filtering NodeGroup resources.
252
+ :param pulumi.Input[str] az: Az
253
+ :param pulumi.Input[str] cluster_id: Cluster ID
254
+ :param pulumi.Input[str] create_time: Create time
255
+ :param pulumi.Input[bool] ignore_failed_node_tasks: Whether to allow skipping failed nodes. Default value: False
256
+ :param pulumi.Input[str] image_id: Image ID
257
+ :param pulumi.Input[Sequence[pulumi.Input['NodeGroupIpAllocationPolicyArgs']]] ip_allocation_policies: IP address combination policy: only one policy type can be selected for each policy, and multiple policies can be combined. See `ip_allocation_policy` below.
258
+ :param pulumi.Input[str] machine_type: Machine type
259
+ :param pulumi.Input[str] node_group_description: NodeGroupDescription
260
+ :param pulumi.Input[str] node_group_id: The first ID of the resource
261
+ :param pulumi.Input[str] node_group_name: The name of the resource
262
+ :param pulumi.Input[Sequence[pulumi.Input['NodeGroupNodeArgs']]] nodes: Node List See `nodes` below.
263
+ :param pulumi.Input[str] user_data: Custom Data
264
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] vpd_subnets: Cluster subnet list
265
+ :param pulumi.Input[str] vswitch_zone_id: Zone ID of the switch
266
+ :param pulumi.Input[str] zone_id: Zone ID
267
+ """
268
+ if az is not None:
269
+ pulumi.set(__self__, "az", az)
270
+ if cluster_id is not None:
271
+ pulumi.set(__self__, "cluster_id", cluster_id)
272
+ if create_time is not None:
273
+ pulumi.set(__self__, "create_time", create_time)
274
+ if ignore_failed_node_tasks is not None:
275
+ pulumi.set(__self__, "ignore_failed_node_tasks", ignore_failed_node_tasks)
276
+ if image_id is not None:
277
+ pulumi.set(__self__, "image_id", image_id)
278
+ if ip_allocation_policies is not None:
279
+ pulumi.set(__self__, "ip_allocation_policies", ip_allocation_policies)
280
+ if machine_type is not None:
281
+ pulumi.set(__self__, "machine_type", machine_type)
282
+ if node_group_description is not None:
283
+ pulumi.set(__self__, "node_group_description", node_group_description)
284
+ if node_group_id is not None:
285
+ pulumi.set(__self__, "node_group_id", node_group_id)
286
+ if node_group_name is not None:
287
+ pulumi.set(__self__, "node_group_name", node_group_name)
288
+ if nodes is not None:
289
+ pulumi.set(__self__, "nodes", nodes)
290
+ if user_data is not None:
291
+ pulumi.set(__self__, "user_data", user_data)
292
+ if vpd_subnets is not None:
293
+ pulumi.set(__self__, "vpd_subnets", vpd_subnets)
294
+ if vswitch_zone_id is not None:
295
+ pulumi.set(__self__, "vswitch_zone_id", vswitch_zone_id)
296
+ if zone_id is not None:
297
+ pulumi.set(__self__, "zone_id", zone_id)
298
+
299
+ @property
300
+ @pulumi.getter
301
+ def az(self) -> Optional[pulumi.Input[str]]:
302
+ """
303
+ Az
304
+ """
305
+ return pulumi.get(self, "az")
306
+
307
+ @az.setter
308
+ def az(self, value: Optional[pulumi.Input[str]]):
309
+ pulumi.set(self, "az", value)
310
+
311
+ @property
312
+ @pulumi.getter(name="clusterId")
313
+ def cluster_id(self) -> Optional[pulumi.Input[str]]:
314
+ """
315
+ Cluster ID
316
+ """
317
+ return pulumi.get(self, "cluster_id")
318
+
319
+ @cluster_id.setter
320
+ def cluster_id(self, value: Optional[pulumi.Input[str]]):
321
+ pulumi.set(self, "cluster_id", value)
322
+
323
+ @property
324
+ @pulumi.getter(name="createTime")
325
+ def create_time(self) -> Optional[pulumi.Input[str]]:
326
+ """
327
+ Create time
328
+ """
329
+ return pulumi.get(self, "create_time")
330
+
331
+ @create_time.setter
332
+ def create_time(self, value: Optional[pulumi.Input[str]]):
333
+ pulumi.set(self, "create_time", value)
334
+
335
+ @property
336
+ @pulumi.getter(name="ignoreFailedNodeTasks")
337
+ def ignore_failed_node_tasks(self) -> Optional[pulumi.Input[bool]]:
338
+ """
339
+ Whether to allow skipping failed nodes. Default value: False
340
+ """
341
+ return pulumi.get(self, "ignore_failed_node_tasks")
342
+
343
+ @ignore_failed_node_tasks.setter
344
+ def ignore_failed_node_tasks(self, value: Optional[pulumi.Input[bool]]):
345
+ pulumi.set(self, "ignore_failed_node_tasks", value)
346
+
347
+ @property
348
+ @pulumi.getter(name="imageId")
349
+ def image_id(self) -> Optional[pulumi.Input[str]]:
350
+ """
351
+ Image ID
352
+ """
353
+ return pulumi.get(self, "image_id")
354
+
355
+ @image_id.setter
356
+ def image_id(self, value: Optional[pulumi.Input[str]]):
357
+ pulumi.set(self, "image_id", value)
358
+
359
+ @property
360
+ @pulumi.getter(name="ipAllocationPolicies")
361
+ def ip_allocation_policies(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['NodeGroupIpAllocationPolicyArgs']]]]:
362
+ """
363
+ IP address combination policy: only one policy type can be selected for each policy, and multiple policies can be combined. See `ip_allocation_policy` below.
364
+ """
365
+ return pulumi.get(self, "ip_allocation_policies")
366
+
367
+ @ip_allocation_policies.setter
368
+ def ip_allocation_policies(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['NodeGroupIpAllocationPolicyArgs']]]]):
369
+ pulumi.set(self, "ip_allocation_policies", value)
370
+
371
+ @property
372
+ @pulumi.getter(name="machineType")
373
+ def machine_type(self) -> Optional[pulumi.Input[str]]:
374
+ """
375
+ Machine type
376
+ """
377
+ return pulumi.get(self, "machine_type")
378
+
379
+ @machine_type.setter
380
+ def machine_type(self, value: Optional[pulumi.Input[str]]):
381
+ pulumi.set(self, "machine_type", value)
382
+
383
+ @property
384
+ @pulumi.getter(name="nodeGroupDescription")
385
+ def node_group_description(self) -> Optional[pulumi.Input[str]]:
386
+ """
387
+ NodeGroupDescription
388
+ """
389
+ return pulumi.get(self, "node_group_description")
390
+
391
+ @node_group_description.setter
392
+ def node_group_description(self, value: Optional[pulumi.Input[str]]):
393
+ pulumi.set(self, "node_group_description", value)
394
+
395
+ @property
396
+ @pulumi.getter(name="nodeGroupId")
397
+ def node_group_id(self) -> Optional[pulumi.Input[str]]:
398
+ """
399
+ The first ID of the resource
400
+ """
401
+ return pulumi.get(self, "node_group_id")
402
+
403
+ @node_group_id.setter
404
+ def node_group_id(self, value: Optional[pulumi.Input[str]]):
405
+ pulumi.set(self, "node_group_id", value)
406
+
407
+ @property
408
+ @pulumi.getter(name="nodeGroupName")
409
+ def node_group_name(self) -> Optional[pulumi.Input[str]]:
410
+ """
411
+ The name of the resource
412
+ """
413
+ return pulumi.get(self, "node_group_name")
414
+
415
+ @node_group_name.setter
416
+ def node_group_name(self, value: Optional[pulumi.Input[str]]):
417
+ pulumi.set(self, "node_group_name", value)
418
+
419
+ @property
420
+ @pulumi.getter
421
+ def nodes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['NodeGroupNodeArgs']]]]:
422
+ """
423
+ Node List See `nodes` below.
424
+ """
425
+ return pulumi.get(self, "nodes")
426
+
427
+ @nodes.setter
428
+ def nodes(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['NodeGroupNodeArgs']]]]):
429
+ pulumi.set(self, "nodes", value)
430
+
431
+ @property
432
+ @pulumi.getter(name="userData")
433
+ def user_data(self) -> Optional[pulumi.Input[str]]:
434
+ """
435
+ Custom Data
436
+ """
437
+ return pulumi.get(self, "user_data")
438
+
439
+ @user_data.setter
440
+ def user_data(self, value: Optional[pulumi.Input[str]]):
441
+ pulumi.set(self, "user_data", value)
442
+
443
+ @property
444
+ @pulumi.getter(name="vpdSubnets")
445
+ def vpd_subnets(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
446
+ """
447
+ Cluster subnet list
448
+ """
449
+ return pulumi.get(self, "vpd_subnets")
450
+
451
+ @vpd_subnets.setter
452
+ def vpd_subnets(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
453
+ pulumi.set(self, "vpd_subnets", value)
454
+
455
+ @property
456
+ @pulumi.getter(name="vswitchZoneId")
457
+ def vswitch_zone_id(self) -> Optional[pulumi.Input[str]]:
458
+ """
459
+ Zone ID of the switch
460
+ """
461
+ return pulumi.get(self, "vswitch_zone_id")
462
+
463
+ @vswitch_zone_id.setter
464
+ def vswitch_zone_id(self, value: Optional[pulumi.Input[str]]):
465
+ pulumi.set(self, "vswitch_zone_id", value)
466
+
467
+ @property
468
+ @pulumi.getter(name="zoneId")
469
+ def zone_id(self) -> Optional[pulumi.Input[str]]:
470
+ """
471
+ Zone ID
472
+ """
473
+ return pulumi.get(self, "zone_id")
474
+
475
+ @zone_id.setter
476
+ def zone_id(self, value: Optional[pulumi.Input[str]]):
477
+ pulumi.set(self, "zone_id", value)
478
+
479
+
480
+ class NodeGroup(pulumi.CustomResource):
481
+ @overload
482
+ def __init__(__self__,
483
+ resource_name: str,
484
+ opts: Optional[pulumi.ResourceOptions] = None,
485
+ az: Optional[pulumi.Input[str]] = None,
486
+ cluster_id: Optional[pulumi.Input[str]] = None,
487
+ ignore_failed_node_tasks: Optional[pulumi.Input[bool]] = None,
488
+ image_id: Optional[pulumi.Input[str]] = None,
489
+ ip_allocation_policies: Optional[pulumi.Input[Sequence[pulumi.Input[Union['NodeGroupIpAllocationPolicyArgs', 'NodeGroupIpAllocationPolicyArgsDict']]]]] = None,
490
+ machine_type: Optional[pulumi.Input[str]] = None,
491
+ node_group_description: Optional[pulumi.Input[str]] = None,
492
+ node_group_name: Optional[pulumi.Input[str]] = None,
493
+ nodes: Optional[pulumi.Input[Sequence[pulumi.Input[Union['NodeGroupNodeArgs', 'NodeGroupNodeArgsDict']]]]] = None,
494
+ user_data: Optional[pulumi.Input[str]] = None,
495
+ vpd_subnets: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
496
+ vswitch_zone_id: Optional[pulumi.Input[str]] = None,
497
+ zone_id: Optional[pulumi.Input[str]] = None,
498
+ __props__=None):
499
+ """
500
+ Provides a Eflo Node Group resource.
501
+
502
+ Node group. Divide a cluster into multiple node groups, each containing multiple nodes.
503
+
504
+ For information about Eflo Node Group and how to use it, see [What is Node Group](https://next.api.alibabacloud.com/document/eflo-controller/2022-12-15/CreateNodeGroup).
505
+
506
+ > **NOTE:** Available since v1.246.0.
507
+
508
+ ## Example Usage
509
+
510
+ Basic Usage
511
+
512
+ ```python
513
+ import pulumi
514
+ import pulumi_alicloud as alicloud
515
+
516
+ config = pulumi.Config()
517
+ name = config.get("name")
518
+ if name is None:
519
+ name = "terraform-example"
520
+ default = alicloud.resourcemanager.get_resource_groups()
521
+ create_vpc = alicloud.vpc.Network("create_vpc",
522
+ cidr_block="192.168.0.0/16",
523
+ vpc_name="cluster-resoure-example")
524
+ create_vswitch = alicloud.vpc.Switch("create_vswitch",
525
+ vpc_id=create_vpc.id,
526
+ zone_id="cn-hangzhou-b",
527
+ cidr_block="192.168.0.0/24",
528
+ vswitch_name="cluster-resoure-example")
529
+ create_security_group = alicloud.ecs.SecurityGroup("create_security_group",
530
+ description="sg",
531
+ security_group_name="cluster-resoure-example",
532
+ security_group_type="normal",
533
+ vpc_id=create_vpc.id)
534
+ default_cluster = alicloud.eflo.Cluster("default",
535
+ cluster_description="cluster-resource-example",
536
+ open_eni_jumbo_frame=False,
537
+ hpn_zone="B1",
538
+ nimiz_vswitches=["1111"],
539
+ ignore_failed_node_tasks=True,
540
+ resource_group_id=default.ids[1],
541
+ node_groups=[{
542
+ "image_id": "i198448731735114628708",
543
+ "zone_id": "cn-hangzhou-b",
544
+ "node_group_name": "cluster-resource-example",
545
+ "node_group_description": "cluster-resource-example",
546
+ "machine_type": "efg2.C48cA3sen",
547
+ }],
548
+ networks={
549
+ "tail_ip_version": "ipv4",
550
+ "new_vpd_info": {
551
+ "monitor_vpc_id": create_vpc.id,
552
+ "monitor_vswitch_id": create_vswitch.id,
553
+ "cen_id": "11111",
554
+ "cloud_link_id": "1111",
555
+ "vpd_cidr": "111",
556
+ "vpd_subnets": [{
557
+ "zone_id": "1111",
558
+ "subnet_cidr": "111",
559
+ "subnet_type": "111",
560
+ }],
561
+ "cloud_link_cidr": "169.254.128.0/23",
562
+ },
563
+ "security_group_id": create_security_group.id,
564
+ "vswitch_zone_id": "cn-hangzhou-b",
565
+ "vpc_id": create_vpc.id,
566
+ "vswitch_id": create_vswitch.id,
567
+ "vpd_info": {
568
+ "vpd_id": "111",
569
+ "vpd_subnets": ["111"],
570
+ },
571
+ "ip_allocation_policies": [{
572
+ "bond_policy": {
573
+ "bond_default_subnet": "111",
574
+ "bonds": [{
575
+ "name": "111",
576
+ "subnet": "111",
577
+ }],
578
+ },
579
+ "machine_type_policies": [{
580
+ "bonds": [{
581
+ "name": "111",
582
+ "subnet": "111",
583
+ }],
584
+ "machine_type": "111",
585
+ }],
586
+ "node_policies": [{
587
+ "bonds": [{
588
+ "name": "111",
589
+ "subnet": "111",
590
+ }],
591
+ "node_id": "111",
592
+ }],
593
+ }],
594
+ },
595
+ cluster_name="tfacceflo7165",
596
+ cluster_type="Lite")
597
+ default_node = alicloud.eflo.Node("default",
598
+ period=36,
599
+ discount_level="36",
600
+ billing_cycle="1month",
601
+ classify="gpuserver",
602
+ zone="cn-hangzhou-b",
603
+ product_form="instance",
604
+ payment_ratio="0",
605
+ hpn_zone="B1",
606
+ server_arch="bmserver",
607
+ computing_server="efg1.nvga1n",
608
+ stage_num="36",
609
+ renewal_status="AutoRenewal",
610
+ renew_period=36,
611
+ status="Unused")
612
+ default_node_group = alicloud.eflo.NodeGroup("default",
613
+ nodes=[{
614
+ "node_id": default_node.id,
615
+ "vpc_id": create_vpc.id,
616
+ "vswitch_id": create_vswitch.id,
617
+ "hostname": "jxyhostname",
618
+ "login_password": "Alibaba@2025",
619
+ }],
620
+ ignore_failed_node_tasks=True,
621
+ cluster_id=default_cluster.id,
622
+ image_id="i195048661660874208657",
623
+ zone_id="cn-hangzhou-b",
624
+ vpd_subnets=["example"],
625
+ user_data="YWxpLGFsaSxhbGliYWJh",
626
+ vswitch_zone_id="cn-hangzhou-b",
627
+ ip_allocation_policies=[{
628
+ "bond_policy": {
629
+ "bond_default_subnet": "example",
630
+ "bonds": [{
631
+ "name": "example",
632
+ "subnet": "example",
633
+ }],
634
+ },
635
+ "machine_type_policies": [{
636
+ "bonds": [{
637
+ "name": "example",
638
+ "subnet": "example",
639
+ }],
640
+ "machine_type": "example",
641
+ }],
642
+ "node_policies": [{
643
+ "node_id": default_node.id,
644
+ "bonds": [{
645
+ "name": "example",
646
+ "subnet": "example",
647
+ }],
648
+ }],
649
+ }],
650
+ machine_type="efg1.nvga1",
651
+ az="cn-hangzhou-b",
652
+ node_group_description="resource-example1",
653
+ node_group_name="tfacceflo63657_update")
654
+ ```
655
+
656
+ ## Import
657
+
658
+ Eflo Node Group can be imported using the id, e.g.
659
+
660
+ ```sh
661
+ $ pulumi import alicloud:eflo/nodeGroup:NodeGroup example <cluster_id>:<node_group_id>
662
+ ```
663
+
664
+ :param str resource_name: The name of the resource.
665
+ :param pulumi.ResourceOptions opts: Options for the resource.
666
+ :param pulumi.Input[str] az: Az
667
+ :param pulumi.Input[str] cluster_id: Cluster ID
668
+ :param pulumi.Input[bool] ignore_failed_node_tasks: Whether to allow skipping failed nodes. Default value: False
669
+ :param pulumi.Input[str] image_id: Image ID
670
+ :param pulumi.Input[Sequence[pulumi.Input[Union['NodeGroupIpAllocationPolicyArgs', 'NodeGroupIpAllocationPolicyArgsDict']]]] ip_allocation_policies: IP address combination policy: only one policy type can be selected for each policy, and multiple policies can be combined. See `ip_allocation_policy` below.
671
+ :param pulumi.Input[str] machine_type: Machine type
672
+ :param pulumi.Input[str] node_group_description: NodeGroupDescription
673
+ :param pulumi.Input[str] node_group_name: The name of the resource
674
+ :param pulumi.Input[Sequence[pulumi.Input[Union['NodeGroupNodeArgs', 'NodeGroupNodeArgsDict']]]] nodes: Node List See `nodes` below.
675
+ :param pulumi.Input[str] user_data: Custom Data
676
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] vpd_subnets: Cluster subnet list
677
+ :param pulumi.Input[str] vswitch_zone_id: Zone ID of the switch
678
+ :param pulumi.Input[str] zone_id: Zone ID
679
+ """
680
+ ...
681
+ @overload
682
+ def __init__(__self__,
683
+ resource_name: str,
684
+ args: NodeGroupArgs,
685
+ opts: Optional[pulumi.ResourceOptions] = None):
686
+ """
687
+ Provides a Eflo Node Group resource.
688
+
689
+ Node group. Divide a cluster into multiple node groups, each containing multiple nodes.
690
+
691
+ For information about Eflo Node Group and how to use it, see [What is Node Group](https://next.api.alibabacloud.com/document/eflo-controller/2022-12-15/CreateNodeGroup).
692
+
693
+ > **NOTE:** Available since v1.246.0.
694
+
695
+ ## Example Usage
696
+
697
+ Basic Usage
698
+
699
+ ```python
700
+ import pulumi
701
+ import pulumi_alicloud as alicloud
702
+
703
+ config = pulumi.Config()
704
+ name = config.get("name")
705
+ if name is None:
706
+ name = "terraform-example"
707
+ default = alicloud.resourcemanager.get_resource_groups()
708
+ create_vpc = alicloud.vpc.Network("create_vpc",
709
+ cidr_block="192.168.0.0/16",
710
+ vpc_name="cluster-resoure-example")
711
+ create_vswitch = alicloud.vpc.Switch("create_vswitch",
712
+ vpc_id=create_vpc.id,
713
+ zone_id="cn-hangzhou-b",
714
+ cidr_block="192.168.0.0/24",
715
+ vswitch_name="cluster-resoure-example")
716
+ create_security_group = alicloud.ecs.SecurityGroup("create_security_group",
717
+ description="sg",
718
+ security_group_name="cluster-resoure-example",
719
+ security_group_type="normal",
720
+ vpc_id=create_vpc.id)
721
+ default_cluster = alicloud.eflo.Cluster("default",
722
+ cluster_description="cluster-resource-example",
723
+ open_eni_jumbo_frame=False,
724
+ hpn_zone="B1",
725
+ nimiz_vswitches=["1111"],
726
+ ignore_failed_node_tasks=True,
727
+ resource_group_id=default.ids[1],
728
+ node_groups=[{
729
+ "image_id": "i198448731735114628708",
730
+ "zone_id": "cn-hangzhou-b",
731
+ "node_group_name": "cluster-resource-example",
732
+ "node_group_description": "cluster-resource-example",
733
+ "machine_type": "efg2.C48cA3sen",
734
+ }],
735
+ networks={
736
+ "tail_ip_version": "ipv4",
737
+ "new_vpd_info": {
738
+ "monitor_vpc_id": create_vpc.id,
739
+ "monitor_vswitch_id": create_vswitch.id,
740
+ "cen_id": "11111",
741
+ "cloud_link_id": "1111",
742
+ "vpd_cidr": "111",
743
+ "vpd_subnets": [{
744
+ "zone_id": "1111",
745
+ "subnet_cidr": "111",
746
+ "subnet_type": "111",
747
+ }],
748
+ "cloud_link_cidr": "169.254.128.0/23",
749
+ },
750
+ "security_group_id": create_security_group.id,
751
+ "vswitch_zone_id": "cn-hangzhou-b",
752
+ "vpc_id": create_vpc.id,
753
+ "vswitch_id": create_vswitch.id,
754
+ "vpd_info": {
755
+ "vpd_id": "111",
756
+ "vpd_subnets": ["111"],
757
+ },
758
+ "ip_allocation_policies": [{
759
+ "bond_policy": {
760
+ "bond_default_subnet": "111",
761
+ "bonds": [{
762
+ "name": "111",
763
+ "subnet": "111",
764
+ }],
765
+ },
766
+ "machine_type_policies": [{
767
+ "bonds": [{
768
+ "name": "111",
769
+ "subnet": "111",
770
+ }],
771
+ "machine_type": "111",
772
+ }],
773
+ "node_policies": [{
774
+ "bonds": [{
775
+ "name": "111",
776
+ "subnet": "111",
777
+ }],
778
+ "node_id": "111",
779
+ }],
780
+ }],
781
+ },
782
+ cluster_name="tfacceflo7165",
783
+ cluster_type="Lite")
784
+ default_node = alicloud.eflo.Node("default",
785
+ period=36,
786
+ discount_level="36",
787
+ billing_cycle="1month",
788
+ classify="gpuserver",
789
+ zone="cn-hangzhou-b",
790
+ product_form="instance",
791
+ payment_ratio="0",
792
+ hpn_zone="B1",
793
+ server_arch="bmserver",
794
+ computing_server="efg1.nvga1n",
795
+ stage_num="36",
796
+ renewal_status="AutoRenewal",
797
+ renew_period=36,
798
+ status="Unused")
799
+ default_node_group = alicloud.eflo.NodeGroup("default",
800
+ nodes=[{
801
+ "node_id": default_node.id,
802
+ "vpc_id": create_vpc.id,
803
+ "vswitch_id": create_vswitch.id,
804
+ "hostname": "jxyhostname",
805
+ "login_password": "Alibaba@2025",
806
+ }],
807
+ ignore_failed_node_tasks=True,
808
+ cluster_id=default_cluster.id,
809
+ image_id="i195048661660874208657",
810
+ zone_id="cn-hangzhou-b",
811
+ vpd_subnets=["example"],
812
+ user_data="YWxpLGFsaSxhbGliYWJh",
813
+ vswitch_zone_id="cn-hangzhou-b",
814
+ ip_allocation_policies=[{
815
+ "bond_policy": {
816
+ "bond_default_subnet": "example",
817
+ "bonds": [{
818
+ "name": "example",
819
+ "subnet": "example",
820
+ }],
821
+ },
822
+ "machine_type_policies": [{
823
+ "bonds": [{
824
+ "name": "example",
825
+ "subnet": "example",
826
+ }],
827
+ "machine_type": "example",
828
+ }],
829
+ "node_policies": [{
830
+ "node_id": default_node.id,
831
+ "bonds": [{
832
+ "name": "example",
833
+ "subnet": "example",
834
+ }],
835
+ }],
836
+ }],
837
+ machine_type="efg1.nvga1",
838
+ az="cn-hangzhou-b",
839
+ node_group_description="resource-example1",
840
+ node_group_name="tfacceflo63657_update")
841
+ ```
842
+
843
+ ## Import
844
+
845
+ Eflo Node Group can be imported using the id, e.g.
846
+
847
+ ```sh
848
+ $ pulumi import alicloud:eflo/nodeGroup:NodeGroup example <cluster_id>:<node_group_id>
849
+ ```
850
+
851
+ :param str resource_name: The name of the resource.
852
+ :param NodeGroupArgs args: The arguments to use to populate this resource's properties.
853
+ :param pulumi.ResourceOptions opts: Options for the resource.
854
+ """
855
+ ...
856
+ def __init__(__self__, resource_name: str, *args, **kwargs):
857
+ resource_args, opts = _utilities.get_resource_args_opts(NodeGroupArgs, pulumi.ResourceOptions, *args, **kwargs)
858
+ if resource_args is not None:
859
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
860
+ else:
861
+ __self__._internal_init(resource_name, *args, **kwargs)
862
+
863
+ def _internal_init(__self__,
864
+ resource_name: str,
865
+ opts: Optional[pulumi.ResourceOptions] = None,
866
+ az: Optional[pulumi.Input[str]] = None,
867
+ cluster_id: Optional[pulumi.Input[str]] = None,
868
+ ignore_failed_node_tasks: Optional[pulumi.Input[bool]] = None,
869
+ image_id: Optional[pulumi.Input[str]] = None,
870
+ ip_allocation_policies: Optional[pulumi.Input[Sequence[pulumi.Input[Union['NodeGroupIpAllocationPolicyArgs', 'NodeGroupIpAllocationPolicyArgsDict']]]]] = None,
871
+ machine_type: Optional[pulumi.Input[str]] = None,
872
+ node_group_description: Optional[pulumi.Input[str]] = None,
873
+ node_group_name: Optional[pulumi.Input[str]] = None,
874
+ nodes: Optional[pulumi.Input[Sequence[pulumi.Input[Union['NodeGroupNodeArgs', 'NodeGroupNodeArgsDict']]]]] = None,
875
+ user_data: Optional[pulumi.Input[str]] = None,
876
+ vpd_subnets: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
877
+ vswitch_zone_id: Optional[pulumi.Input[str]] = None,
878
+ zone_id: Optional[pulumi.Input[str]] = None,
879
+ __props__=None):
880
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
881
+ if not isinstance(opts, pulumi.ResourceOptions):
882
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
883
+ if opts.id is None:
884
+ if __props__ is not None:
885
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
886
+ __props__ = NodeGroupArgs.__new__(NodeGroupArgs)
887
+
888
+ if az is None and not opts.urn:
889
+ raise TypeError("Missing required property 'az'")
890
+ __props__.__dict__["az"] = az
891
+ if cluster_id is None and not opts.urn:
892
+ raise TypeError("Missing required property 'cluster_id'")
893
+ __props__.__dict__["cluster_id"] = cluster_id
894
+ __props__.__dict__["ignore_failed_node_tasks"] = ignore_failed_node_tasks
895
+ if image_id is None and not opts.urn:
896
+ raise TypeError("Missing required property 'image_id'")
897
+ __props__.__dict__["image_id"] = image_id
898
+ __props__.__dict__["ip_allocation_policies"] = ip_allocation_policies
899
+ if machine_type is None and not opts.urn:
900
+ raise TypeError("Missing required property 'machine_type'")
901
+ __props__.__dict__["machine_type"] = machine_type
902
+ __props__.__dict__["node_group_description"] = node_group_description
903
+ if node_group_name is None and not opts.urn:
904
+ raise TypeError("Missing required property 'node_group_name'")
905
+ __props__.__dict__["node_group_name"] = node_group_name
906
+ __props__.__dict__["nodes"] = nodes
907
+ __props__.__dict__["user_data"] = user_data
908
+ __props__.__dict__["vpd_subnets"] = vpd_subnets
909
+ __props__.__dict__["vswitch_zone_id"] = vswitch_zone_id
910
+ __props__.__dict__["zone_id"] = zone_id
911
+ __props__.__dict__["create_time"] = None
912
+ __props__.__dict__["node_group_id"] = None
913
+ super(NodeGroup, __self__).__init__(
914
+ 'alicloud:eflo/nodeGroup:NodeGroup',
915
+ resource_name,
916
+ __props__,
917
+ opts)
918
+
919
+ @staticmethod
920
+ def get(resource_name: str,
921
+ id: pulumi.Input[str],
922
+ opts: Optional[pulumi.ResourceOptions] = None,
923
+ az: Optional[pulumi.Input[str]] = None,
924
+ cluster_id: Optional[pulumi.Input[str]] = None,
925
+ create_time: Optional[pulumi.Input[str]] = None,
926
+ ignore_failed_node_tasks: Optional[pulumi.Input[bool]] = None,
927
+ image_id: Optional[pulumi.Input[str]] = None,
928
+ ip_allocation_policies: Optional[pulumi.Input[Sequence[pulumi.Input[Union['NodeGroupIpAllocationPolicyArgs', 'NodeGroupIpAllocationPolicyArgsDict']]]]] = None,
929
+ machine_type: Optional[pulumi.Input[str]] = None,
930
+ node_group_description: Optional[pulumi.Input[str]] = None,
931
+ node_group_id: Optional[pulumi.Input[str]] = None,
932
+ node_group_name: Optional[pulumi.Input[str]] = None,
933
+ nodes: Optional[pulumi.Input[Sequence[pulumi.Input[Union['NodeGroupNodeArgs', 'NodeGroupNodeArgsDict']]]]] = None,
934
+ user_data: Optional[pulumi.Input[str]] = None,
935
+ vpd_subnets: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
936
+ vswitch_zone_id: Optional[pulumi.Input[str]] = None,
937
+ zone_id: Optional[pulumi.Input[str]] = None) -> 'NodeGroup':
938
+ """
939
+ Get an existing NodeGroup resource's state with the given name, id, and optional extra
940
+ properties used to qualify the lookup.
941
+
942
+ :param str resource_name: The unique name of the resulting resource.
943
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
944
+ :param pulumi.ResourceOptions opts: Options for the resource.
945
+ :param pulumi.Input[str] az: Az
946
+ :param pulumi.Input[str] cluster_id: Cluster ID
947
+ :param pulumi.Input[str] create_time: Create time
948
+ :param pulumi.Input[bool] ignore_failed_node_tasks: Whether to allow skipping failed nodes. Default value: False
949
+ :param pulumi.Input[str] image_id: Image ID
950
+ :param pulumi.Input[Sequence[pulumi.Input[Union['NodeGroupIpAllocationPolicyArgs', 'NodeGroupIpAllocationPolicyArgsDict']]]] ip_allocation_policies: IP address combination policy: only one policy type can be selected for each policy, and multiple policies can be combined. See `ip_allocation_policy` below.
951
+ :param pulumi.Input[str] machine_type: Machine type
952
+ :param pulumi.Input[str] node_group_description: NodeGroupDescription
953
+ :param pulumi.Input[str] node_group_id: The first ID of the resource
954
+ :param pulumi.Input[str] node_group_name: The name of the resource
955
+ :param pulumi.Input[Sequence[pulumi.Input[Union['NodeGroupNodeArgs', 'NodeGroupNodeArgsDict']]]] nodes: Node List See `nodes` below.
956
+ :param pulumi.Input[str] user_data: Custom Data
957
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] vpd_subnets: Cluster subnet list
958
+ :param pulumi.Input[str] vswitch_zone_id: Zone ID of the switch
959
+ :param pulumi.Input[str] zone_id: Zone ID
960
+ """
961
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
962
+
963
+ __props__ = _NodeGroupState.__new__(_NodeGroupState)
964
+
965
+ __props__.__dict__["az"] = az
966
+ __props__.__dict__["cluster_id"] = cluster_id
967
+ __props__.__dict__["create_time"] = create_time
968
+ __props__.__dict__["ignore_failed_node_tasks"] = ignore_failed_node_tasks
969
+ __props__.__dict__["image_id"] = image_id
970
+ __props__.__dict__["ip_allocation_policies"] = ip_allocation_policies
971
+ __props__.__dict__["machine_type"] = machine_type
972
+ __props__.__dict__["node_group_description"] = node_group_description
973
+ __props__.__dict__["node_group_id"] = node_group_id
974
+ __props__.__dict__["node_group_name"] = node_group_name
975
+ __props__.__dict__["nodes"] = nodes
976
+ __props__.__dict__["user_data"] = user_data
977
+ __props__.__dict__["vpd_subnets"] = vpd_subnets
978
+ __props__.__dict__["vswitch_zone_id"] = vswitch_zone_id
979
+ __props__.__dict__["zone_id"] = zone_id
980
+ return NodeGroup(resource_name, opts=opts, __props__=__props__)
981
+
982
+ @property
983
+ @pulumi.getter
984
+ def az(self) -> pulumi.Output[str]:
985
+ """
986
+ Az
987
+ """
988
+ return pulumi.get(self, "az")
989
+
990
+ @property
991
+ @pulumi.getter(name="clusterId")
992
+ def cluster_id(self) -> pulumi.Output[str]:
993
+ """
994
+ Cluster ID
995
+ """
996
+ return pulumi.get(self, "cluster_id")
997
+
998
+ @property
999
+ @pulumi.getter(name="createTime")
1000
+ def create_time(self) -> pulumi.Output[str]:
1001
+ """
1002
+ Create time
1003
+ """
1004
+ return pulumi.get(self, "create_time")
1005
+
1006
+ @property
1007
+ @pulumi.getter(name="ignoreFailedNodeTasks")
1008
+ def ignore_failed_node_tasks(self) -> pulumi.Output[Optional[bool]]:
1009
+ """
1010
+ Whether to allow skipping failed nodes. Default value: False
1011
+ """
1012
+ return pulumi.get(self, "ignore_failed_node_tasks")
1013
+
1014
+ @property
1015
+ @pulumi.getter(name="imageId")
1016
+ def image_id(self) -> pulumi.Output[str]:
1017
+ """
1018
+ Image ID
1019
+ """
1020
+ return pulumi.get(self, "image_id")
1021
+
1022
+ @property
1023
+ @pulumi.getter(name="ipAllocationPolicies")
1024
+ def ip_allocation_policies(self) -> pulumi.Output[Optional[Sequence['outputs.NodeGroupIpAllocationPolicy']]]:
1025
+ """
1026
+ IP address combination policy: only one policy type can be selected for each policy, and multiple policies can be combined. See `ip_allocation_policy` below.
1027
+ """
1028
+ return pulumi.get(self, "ip_allocation_policies")
1029
+
1030
+ @property
1031
+ @pulumi.getter(name="machineType")
1032
+ def machine_type(self) -> pulumi.Output[str]:
1033
+ """
1034
+ Machine type
1035
+ """
1036
+ return pulumi.get(self, "machine_type")
1037
+
1038
+ @property
1039
+ @pulumi.getter(name="nodeGroupDescription")
1040
+ def node_group_description(self) -> pulumi.Output[Optional[str]]:
1041
+ """
1042
+ NodeGroupDescription
1043
+ """
1044
+ return pulumi.get(self, "node_group_description")
1045
+
1046
+ @property
1047
+ @pulumi.getter(name="nodeGroupId")
1048
+ def node_group_id(self) -> pulumi.Output[str]:
1049
+ """
1050
+ The first ID of the resource
1051
+ """
1052
+ return pulumi.get(self, "node_group_id")
1053
+
1054
+ @property
1055
+ @pulumi.getter(name="nodeGroupName")
1056
+ def node_group_name(self) -> pulumi.Output[str]:
1057
+ """
1058
+ The name of the resource
1059
+ """
1060
+ return pulumi.get(self, "node_group_name")
1061
+
1062
+ @property
1063
+ @pulumi.getter
1064
+ def nodes(self) -> pulumi.Output[Optional[Sequence['outputs.NodeGroupNode']]]:
1065
+ """
1066
+ Node List See `nodes` below.
1067
+ """
1068
+ return pulumi.get(self, "nodes")
1069
+
1070
+ @property
1071
+ @pulumi.getter(name="userData")
1072
+ def user_data(self) -> pulumi.Output[Optional[str]]:
1073
+ """
1074
+ Custom Data
1075
+ """
1076
+ return pulumi.get(self, "user_data")
1077
+
1078
+ @property
1079
+ @pulumi.getter(name="vpdSubnets")
1080
+ def vpd_subnets(self) -> pulumi.Output[Optional[Sequence[str]]]:
1081
+ """
1082
+ Cluster subnet list
1083
+ """
1084
+ return pulumi.get(self, "vpd_subnets")
1085
+
1086
+ @property
1087
+ @pulumi.getter(name="vswitchZoneId")
1088
+ def vswitch_zone_id(self) -> pulumi.Output[Optional[str]]:
1089
+ """
1090
+ Zone ID of the switch
1091
+ """
1092
+ return pulumi.get(self, "vswitch_zone_id")
1093
+
1094
+ @property
1095
+ @pulumi.getter(name="zoneId")
1096
+ def zone_id(self) -> pulumi.Output[Optional[str]]:
1097
+ """
1098
+ Zone ID
1099
+ """
1100
+ return pulumi.get(self, "zone_id")
1101
+